Guzzleova opcija proxy prihvaća puni URL krajnje točke. Postavite je na zahtjevu kada samo ta operacija treba koristiti odabrani IP.

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

Primjer pretpostavlja Guzzle 7 instaliran putem Composera. Zamijenite dokumentacijsku adresu stvarnim HTTP proxyjem pružatelja ili s popisa HTTP proxyja. Odredište zadržite u URL-u zahtjeva: proxy je posrednik, a ne resurs koji preuzimate.

Ovdje je http_errors false kako bi HTTP odgovor s pogreškom ostao dostupan za pregled. Neuspjela povezivanja i dalje bacaju iznimke prijenosa. HTTPS tunel odbijen tijekom uspostavljanja zato može zakazati prije nego što dobijete uobičajen objekt odgovora stranice.

Provjerite rukovatelja kada se ograničenja povezivanja ponašaju drugačije

Guzzle može koristiti različite HTTP rukovatelje. Dokumentacija kaže da ugrađeni cURL rukovatelj podržava connect_timeout. Prilagođeni rukovatelj ili okruženje bez PHP cURL-a nisu nužno jednaki. Provjerite rukovatelja aplikacije prije pretpostavke da kopirana opcija vremenskog ograničenja djeluje.

Vrijedi postaviti i ukupni timeout. Unosi besplatnih popisa mogu prestati odgovarati između provjera, a zadana vrijednost nije koristan rok za zahtjev koji mora brzo završiti.

Korištenje proxy mape

Mapa omogućuje izbor putanja prema shemi odredišta i izričito navođenje hostova za zaobilaženje proxyja:

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

Koristite ovo polje umjesto tekstualne opcije. Ključ HTTPS bira HTTPS odredišta; njegova HTTP vrijednost i dalje opisuje osluškivač proxyja. Drugi protokol osluškivača zahtijeva drugačiju konfiguraciju krajnje točke.

Kada sami dajete proxy opciju zahtjeva, Guzzle očekuje i željene no vrijednosti umjesto da ih automatski kopira iz NO_PROXY. Prazan popis koristan je za izolirani proxy test. Ako aplikacija ima namjerna pravila zaobilaženja, sačuvajte ih izričito.

Povezani članci