Guzzle opcija proxy pieņem pilnu galapunkta URL. Iestatiet to pieprasījumā, ja izvēlēto IP drīkst izmantot tikai šī darbība.

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

Piemērs paredz ar Composer instalētu Guzzle 7. Dokumentācijas adresi aizstājiet ar īstu HTTP starpniekserveri no pakalpojuma sniedzēja vai HTTP starpniekserveru saraksta. Galamērķi atstājiet pieprasījuma URL: starpniekserveris ir starpnieks, nevis lejupielādējamais resurss.

Šeit http_errors ir false, lai HTTP kļūdas atbilde paliktu pieejama pārbaudei. Savienojuma kļūmes joprojām izmet pārsūtīšanas izņēmumus. Izveides laikā noraidīts HTTPS tunelis tādēļ var neizdoties pirms parasta vietnes atbildes objekta saņemšanas.

Pārbaudiet apstrādātāju, ja savienojuma ierobežojumi darbojas citādi

Guzzle var izmantot dažādus HTTP apstrādātājus. Dokumentācija norāda, ka iebūvētais cURL apstrādātājs atbalsta connect_timeout. Pielāgots apstrādātājs vai vide bez PHP cURL nav obligāti līdzvērtīga. Pārbaudiet lietotnes apstrādātāju, pirms pieņemat, ka nokopēta taimauta opcija darbojas.

Vērts iestatīt arī kopējo timeout. Bezmaksas sarakstu ieraksti starp pārbaudēm var pārstāt atbildēt, un noklusējums nav noderīgs termiņš pieprasījumam, kam ātri jābeidzas.

Proxy kartējuma izmantošana

Kartējums ļauj izvēlēties maršrutus pēc galamērķa shēmas un skaidri norādīt resursdatorus starpniekservera apiešanai:

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

Izmantojiet šo masīvu virknes opcijas vietā. HTTPS atslēga izvēlas HTTPS galamērķus; tās HTTP vērtība joprojām apraksta starpniekservera klausītāju. Citam klausītāja protokolam vajadzīga cita galapunkta konfigurācija.

Kad paši norādāt pieprasījuma proxy opciju, Guzzle gaida arī paredzētās no vērtības, nevis automātiski kopē tās no NO_PROXY. Tukšs saraksts noder izolētam starpniekservera testam. Ja lietotnei ir apzināti apiešanas noteikumi, saglabājiet tos skaidri norādītus.

Saistītie raksti