Параметр proxy у Guzzle прымае поўны URL канцавага пункта. Задайце яго ў запыце, калі толькі гэтая аперацыя мусіць выкарыстоўваць абраны IP.

<?php
require __DIR__ . '/vendor/autoload.php';

$client = new GuzzleHttp\Client();
$response = $client->request('GET', 'https://example.com/', [
    'proxy' => 'http://203.0.113.10:8080',
    'connect_timeout' => 5,
    'timeout' => 15,
    'http_errors' => false,
]);

echo $response->getStatusCode(), PHP_EOL;
echo (string) $response->getBody();

Прыклад мяркуе ўсталяваны праз Composer Guzzle 7. Замяніце адрас для дакументацыі сапраўдным HTTP-проксі пастаўшчыка або са спіса HTTP-проксі. Адрас прызначэння пакіньце ў URL запыту: проксі — пасрэднік, а не рэсурс, які спампоўваецца.

Тут http_errors роўны false, каб HTTP-адказ з памылкай заставаўся даступным для вывучэння. Памылкі злучэння па-ранейшаму выклікаюць выключэнні перадачы. Таму HTTPS-тунэль, адхілены пры стварэнні, можа скончыцца памылкай да атрымання звычайнага аб’екта адказу сайта.

Праверце апрацоўшчык, калі межы злучэння дзейнічаюць інакш

Guzzle можа выкарыстоўваць розныя HTTP-апрацоўшчыкі. Дакументацыя кажа, што ўбудаваны апрацоўшчык cURL падтрымлівае connect_timeout. Уласны апрацоўшчык ці асяроддзе без PHP cURL не абавязкова раўназначныя. Перад меркаваннем, што скапіяваны тайм-аўт дзейнічае, праверце апрацоўшчык праграмы.

Агульны timeout таксама варта задаць. Запісы бясплатнага спіса могуць перастаць адказваць паміж праверкамі, а стандартнае значэнне не дае карыснага тэрміну для запыту, які мусіць скончыцца хутка.

Выкарыстанне карты проксі

Карта дазваляе выбіраць маршруты паводле схемы адраса прызначэння і яўна задаваць вузлы абыходу проксі:

'proxy' => [
    'http' => 'http://203.0.113.10:8080',
    'https' => 'http://203.0.113.10:8080',
    'no' => [],
],

Выкарыстоўвайце гэты масіў замест радковага значэння. Ключ HTTPS выбірае HTTPS-адрасаты; яго значэнне HTTP па-ранейшаму апісвае слухач проксі. Іншы пратакол слухача патрабуе іншай налады канцавага пункта.

Калі вы самі задаяце параметр proxy запыту, Guzzle чакае ад вас патрэбныя значэнні no, а не капіюе іх аўтаматычна з NO_PROXY. Пусты спіс зручны для ізаляванага тэсту проксі. Калі праграма мае наўмысныя правілы абыходу, захоўвайце іх яўна.

Падобныя артыкулы