Guzzle-дың proxy параметрі толық соңғы нүкте 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();

Мысал Guzzle 7 Composer арқылы орнатылған деп есептейді. Құжат мекенжайын провайдерден немесе 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 айнымалысынан автоматты көшірмейді. Бос тізім оқшау прокси сынағына ыңғайлы. Қолданбада әдейі айналып өту ережелері болса, оларды анық сақтаңыз.

Қатысты мақалалар