Voľba proxy v Guzzle prijíma úplnú URL koncového bodu. Nastavte ju pri požiadavke, ak má vybranú IP používať len táto operácia.

<?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();

Príklad predpokladá Guzzle 7 nainštalovaný cez Composer. Dokumentačnú adresu nahraďte skutočným HTTP proxy od poskytovateľa alebo zo zoznamu HTTP proxy. Cieľ ponechajte v URL požiadavky: proxy je sprostredkovateľ, nie sťahovaný prostriedok.

Tu je http_errors false, aby chybová HTTP odpoveď zostala dostupná na skúmanie. Zlyhania pripojenia naďalej vyvolávajú výnimky prenosu. HTTPS tunel odmietnutý pri vytváraní tak môže zlyhať skôr, ako dostanete bežný objekt odpovede webu.

Ak sa limity pripojenia správajú inak, skontrolujte handler

Guzzle môže používať rôzne HTTP handlery. Dokumentácia uvádza, že vstavaný handler cURL podporuje connect_timeout. Vlastný handler alebo prostredie bez PHP cURL nemusia byť rovnocenné. Než predpokladáte, že skopírovaná voľba časového limitu funguje, overte handler aplikácie.

Oplatí sa nastaviť aj celkový timeout. Záznamy bezplatných zoznamov môžu medzi kontrolami prestať odpovedať a predvolená hodnota nie je užitočná lehota pre požiadavku, ktorá musí skončiť rýchlo.

Použitie mapy proxy

Mapa umožňuje voliť trasy podľa schémy cieľa a explicitne uviesť hostiteľov na obídenie proxy:

'proxy' => [
    'http' => 'http://203.0.113.10:8080',
    'https' => 'http://203.0.113.10:8080',
    'no' => [],
],

Použite toto pole namiesto reťazcovej voľby. Kľúč HTTPS vyberá ciele HTTPS; jeho hodnota HTTP stále opisuje načúvajúce rozhranie proxy. Iný načúvací protokol vyžaduje inú konfiguráciu koncového bodu.

Ak voľbu proxy požiadavky zadáte sami, Guzzle očakáva aj zamýšľané hodnoty no, namiesto automatického kopírovania z NO_PROXY. Prázdny zoznam sa hodí na izolovaný test proxy. Ak má aplikácia zámerné pravidlá obchádzania, zachovajte ich explicitne.

Súvisiace články