Vendosni IP proxy për një kërkesë Guzzle
Përdorni opsionin proxy për kërkesë në Guzzle dhe kuptoni afatin e lidhjes që varet nga trajtuesi dhe listën e qartë të përjashtimeve.
Opsioni proxy i Guzzle pranon një URL të plotë të pikës fundore. Vendoseni në kërkesë kur vetëm ai veprim duhet të përdorë IP-në e zgjedhur.
<?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();
Shembulli supozon Guzzle 7 të instaluar përmes Composer. Zëvendësoni adresën e dokumentacionit me një proxy HTTP real nga ofruesi ose lista e proxy-ve HTTP. Mbajeni destinacionin në URL-në e kërkesës: proxy është ndërmjetës, jo burimi që shkarkohet.
Këtu http_errors është false që përgjigjja e gabimit HTTP të mbetet për shqyrtim. Dështimet e lidhjes ende hedhin përjashtime transferimi. Një tunel HTTPS i refuzuar gjatë ngritjes mund kështu të dështojë para se të merrni objekt normal përgjigjeje nga faqja.
Kontrolloni trajtuesin kur kufijtë e lidhjes sillen ndryshe
Guzzle mund të përdorë trajtues të ndryshëm HTTP. Dokumentacioni thotë se trajtuesi i integruar cURL mbështet connect_timeout. Trajtuesi i personalizuar ose mjedisi pa PHP cURL nuk është domosdoshmërisht i barasvlershëm. Kontrolloni trajtuesin e aplikacionit para se të supozoni se një opsion kohe i kopjuar po vepron.
Vlen të vendoset edhe timeout i përgjithshëm. Hyrjet e listave falas mund të ndalojnë përgjigjen mes kontrolleve dhe vlera standarde nuk është afat i dobishëm për një kërkesë që duhet të mbarojë shpejt.
Përdorimi i një harte proxy-sh
Harta ju lejon të zgjidhni rrugët sipas skemës së destinacionit dhe të jepni qartësisht hoste për anashkalim:
'proxy' => [
'http' => 'http://203.0.113.10:8080',
'https' => 'http://203.0.113.10:8080',
'no' => [],
],
Përdorni këtë varg në vend të opsionit tekstual. Çelësi HTTPS zgjedh destinacione HTTPS; vlera HTTP ende përshkruan dëgjuesin e proxy-t. Një protokoll tjetër dëgjuesi kërkon konfigurim tjetër të pikës fundore.
Kur e jepni vetë opsionin proxy të kërkesës, Guzzle pret edhe vlerat no që dëshironi, në vend që t’i kopjojë automatikisht nga NO_PROXY. Një listë bosh është e dobishme për test të izoluar proxy. Në aplikacion me rregulla të qëllimshme anashkalimi, ruajini ato qartësisht.