Guzzlen proxy-asetus hyväksyy täydellisen päätepiste-URL:n. Aseta se pyyntöön, kun vain kyseisen toiminnon tulee käyttää valitsemaasi 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();

Esimerkki olettaa Guzzle 7:n olevan asennettu Composerilla. Korvaa dokumentaatio-osoite toimivalla HTTP-välityspalvelimella tarjoajalta tai HTTP-välityspalvelinten luettelosta. Pidä kohde pyyntö-URL:ssa: välityspalvelin on välittäjä, ei ladattava resurssi.

Tässä http_errors on false, jotta HTTP-virhevastaus säilyy tarkasteltavana. Yhteysvirheet aiheuttavat yhä siirtopoikkeuksia. Muodostuksen aikana hylätty HTTPS-tunneli voi siten epäonnistua ennen kuin saat tavallisen sivuston vastausolion.

Tarkista käsittelijä, jos yhteysrajat toimivat eri tavalla

Guzzle voi käyttää erilaisia HTTP-käsittelijöitä. Dokumentaatio kertoo sisäisen cURL-käsittelijän tukevan asetusta connect_timeout. Oma käsittelijä tai ympäristö ilman PHP cURLia ei välttämättä vastaa sitä. Tarkista sovelluksen käsittelijä ennen kuin oletat kopioidun aikaraja-asetuksen toimivan.

Myös yleinen timeout kannattaa asettaa. Ilmaislistan osoitteet voivat lakata vastaamasta tarkistusten välillä, eikä oletusarvo anna hyödyllistä määräaikaa nopeasti päättyvälle pyynnölle.

Proxy-kartan käyttö

Kartalla voit valita reitin kohteen URL-skeeman mukaan ja antaa erikseen välityspalvelimen ohittavat isännät:

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

Käytä tätä taulukkoa merkkijonoasetuksen sijaan. HTTPS-avain valitsee HTTPS-kohteet; sen HTTP-arvo kuvaa edelleen välityspalvelimen kuuntelijaa. Eri kuunteluprotokolla vaatii eri päätepisteasetuksen.

Kun annat pyynnön proxy-asetuksen itse, Guzzle odottaa sinun antavan myös tarkoitetut no-arvot sen sijaan, että se kopioisi ne automaattisesti muuttujasta NO_PROXY. Tyhjä lista sopii erilliseen välityspalvelintestiin. Jos sovelluksessa on tarkoituksellisia ohitussääntöjä, säilytä ne erikseen asetettuina.

Aiheeseen liittyvät artikkelit