Stel ’n proxy-IP vir ’n Guzzle-versoek
Gebruik Guzzle se proxyopsie per versoek en verstaan hanteerderafhanklike verbindingstydlimiete en die uitdruklike omseillys.
Guzzle se proxy-opsie aanvaar ’n volledige eindpunt-URL. Stel dit op die versoek wanneer net dié bewerking die gekose IP moet gebruik.
<?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();
Die voorbeeld neem aan dat Guzzle 7 deur Composer geïnstalleer is. Vervang die dokumentasieadres met ’n werklike HTTP-instaanbediener van jou verskaffer of die HTTP-instaanbedienerlys. Hou die bestemming in die versoek-URL: die instaanbediener is ’n tussenganger, nie die hulpbron wat afgelaai word nie.
Hier is http_errors false sodat ’n HTTP-foutantwoord vir ondersoek beskikbaar bly. Verbindingsfoute gooi steeds oordraguitsonderings. ’n HTTPS-tonnel wat tydens opstelling geweier word kan dus misluk voordat jy ’n gewone webwerfantwoordobjek ontvang.
Kontroleer die hanteerder wanneer verbindingstydlimiete anders werk
Guzzle kan verskillende HTTP-hanteerders gebruik. Volgens die dokumentasie ondersteun die ingeboude cURL-hanteerder connect_timeout. ’n Pasgemaakte hanteerder of omgewing sonder PHP cURL is nie noodwendig gelykwaardig nie. Kontroleer die toepassing se hanteerder voordat jy aanneem dat ’n gekopieerde tydlimietopsie werk.
Dit is ook die moeite werd om die algehele timeout te stel. Gratislysinskrywings kan tussen kontroles ophou antwoord, en die verstekwaarde is nie ’n nuttige sperdatum vir ’n versoek wat vinnig moet klaarmaak nie.
Gebruik ’n proxykartering
’n Kartering laat jou roetes volgens die bestemmingskema kies en uitdruklike gashere vir omseiling verskaf:
'proxy' => [
'http' => 'http://203.0.113.10:8080',
'https' => 'http://203.0.113.10:8080',
'no' => [],
],
Gebruik hierdie skikking in plaas van die stringopsie. Die HTTPS-sleutel kies HTTPS-bestemmings; sy HTTP-waarde beskryf steeds die instaanbediener se luisterdiens. ’n Ander luisterprotokol vereis ’n ander eindpuntopstelling.
Wanneer jy self die proxyversoekopsie verskaf, verwag Guzzle dat jy die bedoelde no-waardes verskaf, eerder as om dit outomaties uit NO_PROXY te kopieer. ’n Leë lys is nuttig vir ’n geïsoleerde proxytoets. Behou doelbewuste omseilreëls in ’n toepassing eerder uitdruklik.