Postavite proxy IP za Guzzle zahtjev
Koristite Guzzleovu proxy opciju po zahtjevu i razumite vremensko ograničenje zavisno od obrađivača i eksplicitnu listu zaobilaženja.
Guzzleova opcija proxy prihvata puni URL krajnje tačke. Postavite je u 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 preko Composera. Dokumentacijsku adresu zamijenite stvarnim HTTP proxyjem dobavljača ili iz liste HTTP proxyja. Odredište zadržite u URL-u zahtjeva: proxy je posrednik, ne resurs koji se preuzima.
Ovdje je http_errors false da HTTP odgovor s greškom ostane dostupan za pregled. Neuspješna povezivanja i dalje bacaju izuzetke prenosa. HTTPS tunel odbijen tokom uspostavljanja zato može pasti prije dobijanja običnog objekta odgovora stranice.
Provjerite obrađivač ako se ograničenja veze ponašaju drugačije
Guzzle može koristiti različite HTTP obrađivače. Dokumentacija navodi da ugrađeni cURL obrađivač podržava connect_timeout. Prilagođeni obrađivač ili okruženje bez PHP cURL-a nisu nužno ekvivalentni. Provjerite obrađivač aplikacije prije pretpostavke da kopirana timeout opcija djeluje.
Vrijedi postaviti i ukupni timeout. Unosi besplatnih lista mogu prestati odgovarati između provjera, a podrazumijevana vrijednost nije koristan rok za zahtjev koji mora brzo završiti.
Upotreba proxy mape
Mapa omogućava izbor putanja po shemi odredišta i eksplicitno navođenje hostova za zaobilaženje:
'proxy' => [
'http' => 'http://203.0.113.10:8080',
'https' => 'http://203.0.113.10:8080',
'no' => [],
],
Koristite ovaj niz umjesto opcije u obliku stringa. Ključ HTTPS bira HTTPS odredišta; njegova HTTP vrijednost i dalje opisuje proxy slušaoca. Drugi protokol slušaoca traži drugačiju konfiguraciju krajnje tačke.
Kada sami zadajete proxy opciju zahtjeva, Guzzle očekuje i željene no vrijednosti umjesto automatskog kopiranja iz NO_PROXY. Prazna lista je korisna za izolovan proxy test. U aplikaciji s namjernim pravilima zaobilaženja sačuvajte ih eksplicitno.