Puhverserveri IP määramine Guzzle’i päringule
Kasuta Guzzle’i päringupõhist proxy-valikut ning mõista käsitlejast sõltuvat ühenduse ajalimiiti ja selgesõnalist möödumisloendit.
Guzzle’i valik proxy võtab vastu täieliku lõpp-punkti URL-i. Määra see päringule, kui valitud IP-d peab kasutama ainult see toiming.
<?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();
Näide eeldab Composeriga paigaldatud Guzzle 7-t. Asenda dokumentatsiooniaadress päris HTTP-puhverserveriga pakkujalt või HTTP-puhverserverite loendist. Hoia sihtkoht päringu URL-is: puhverserver on vahendaja, mitte allalaaditav ressurss.
Siin on http_errors false, et HTTP-veavastus jääks uurimiseks kättesaadavaks. Ühenduse tõrked viskavad endiselt edastuserindeid. Loomisel tagasi lükatud HTTPS-tunnel võib seega ebaõnnestuda enne tavalise veebisaidi vastuseobjekti saamist.
Kontrolli käsitlejat, kui ühenduspiirangud käituvad teisiti
Guzzle võib kasutada eri HTTP-käsitlejaid. Dokumentatsioon ütleb, et sisseehitatud cURL-käsitleja toetab valikut connect_timeout. Oma käsitleja või PHP cURL-ita keskkond ei pruugi olla samaväärne. Kontrolli rakenduse käsitlejat enne, kui eeldad kopeeritud ajalimiidivaliku toimimist.
Määrata tasub ka üldine timeout. Tasuta loendi kirjed võivad kontrollide vahel vastamast lakata ning vaikeväärtus pole kasulik tähtaeg päringule, mis peab kiiresti lõppema.
Puhverserverikaardi kasutamine
Kaart lubab valida marsruudid sihtkoha skeemi järgi ja anda selgesõnaliselt puhverserverist mööduvad hostid:
'proxy' => [
'http' => 'http://203.0.113.10:8080',
'https' => 'http://203.0.113.10:8080',
'no' => [],
],
Kasuta seda massiivi stringvaliku asemel. HTTPS-võti valib HTTPS-sihtkohad; selle HTTP-väärtus kirjeldab endiselt puhverserveri kuulajat. Teistsugune kuulajaprotokoll vajab teistsugust lõpp-punkti seadistust.
Kui annad päringu proxy-valiku ise, ootab Guzzle sinult ka kavandatud no-väärtusi, mitte ei kopeeri neid automaatselt muutujast NO_PROXY. Tühi loend sobib eraldatud puhverserveritestiks. Kui rakendusel on teadlikud möödumisreeglid, säilita need selgesõnaliselt.