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.

Artikuj të ngjashëm