Proxy-IP beállítása egy Guzzle-kéréshez
Használja a Guzzle kérésenkénti proxybeállítását, és értse meg a kezelőfüggő kapcsolódási időkorlátot és az explicit megkerülési listát.
A Guzzle proxy beállítása teljes végpont-URL-t fogad. Akkor adja meg a kérésen, ha csak az adott művelet használja a választott IP-t.
<?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();
A példa Composerrel telepített Guzzle 7-et feltételez. Cserélje a dokumentációs címet valódi HTTP-proxyra a szolgáltatótól vagy a HTTP-proxyk listájából. A cél maradjon a kérés URL-jében: a proxy közvetítő, nem a letöltött erőforrás.
Itt a http_errors false, hogy a HTTP-hibaválasz megvizsgálható maradjon. A kapcsolódási hibák továbbra is átviteli kivételeket dobnak. Egy létrehozáskor elutasított HTTPS-alagút ezért még azelőtt hibázhat, hogy szokásos webhelyválasz-objektumot kapna.
Ellenőrizze a kezelőt, ha a kapcsolódási korlátok másként viselkednek
A Guzzle különböző HTTP-kezelőket használhat. Dokumentációja szerint a beépített cURL-kezelő támogatja a connect_timeout beállítást. Saját kezelő vagy PHP cURL nélküli környezet nem feltétlenül egyenértékű. Ellenőrizze az alkalmazás kezelőjét, mielőtt feltételezi, hogy egy másolt időkorlát-beállítás érvényesül.
A teljes timeout beállítása is hasznos. Az ingyenes lista elemei két ellenőrzés között leállhatnak, az alapérték pedig nem hasznos határidő egy gyorsan befejezendő kéréshez.
Proxyleképezés használata
A leképezés a cél sémája szerint választ útvonalat, és lehetővé teszi a proxyt megkerülő gépek explicit megadását:
'proxy' => [
'http' => 'http://203.0.113.10:8080',
'https' => 'http://203.0.113.10:8080',
'no' => [],
],
Ezt a tömböt használja a karakterlánc-beállítás helyett. A HTTPS-kulcs HTTPS-célokat választ; HTTP-értéke továbbra is a proxy figyelőjét írja le. Más figyelőprotokollhoz más végpontbeállítás szükséges.
Ha saját maga adja meg a kérés proxybeállítását, a Guzzle a kívánt no értékeket is öntől várja, nem másolja őket automatikusan a NO_PROXY változóból. Üres lista hasznos egy elkülönített proxyteszthez. Ha az alkalmazásnak szándékos megkerülési szabályai vannak, azokat őrizze meg explicit módon.