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.

Kapcsolódó cikkek