Tumatanggap ng buong endpoint URL ang proxy option ng Guzzle. Itakda ito sa request kung ang operasyong iyon lang ang dapat gumamit ng napiling 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();

Ipinapalagay ng halimbawa na naka-install ang Guzzle 7 sa pamamagitan ng Composer. Palitan ang address para sa dokumentasyon ng aktuwal na HTTP proxy mula sa provider o listahan ng mga HTTP proxy. Panatilihin ang destinasyon sa request URL: tagapamagitan ang proxy, hindi ang dina-download na resource.

Dito ay false ang http_errors para manatiling masusuri ang HTTP error response. Naghahagis pa rin ng transfer exceptions ang connection failures. Kaya maaaring pumalya ang HTTPS tunnel na tinanggihan habang binubuo bago ka makakuha ng ordinaryong website response object.

Tingnan ang handler kapag iba ang kilos ng connection limits

Maaaring gumamit ng iba't ibang HTTP handler ang Guzzle. Ayon sa dokumentasyon, suportado ng built-in cURL handler ang connect_timeout. Hindi palaging katumbas ang custom handler o environment na walang PHP cURL. Suriin ang handler ng app bago isiping may epekto ang kinopyang timeout option.

Mainam ding itakda ang kabuuang timeout. Maaaring tumigil sa pagsagot ang free-list entries sa pagitan ng mga check, at hindi kapaki-pakinabang na deadline ang default para sa request na kailangang matapos agad.

Paggamit ng proxy map

Sa map, makakapili ka ng ruta ayon sa destination scheme at tahasang makapagbibigay ng bypass hosts:

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

Gamitin ang array na ito kapalit ng string option. Pinipili ng HTTPS key ang mga destinasyong HTTPS; inilalarawan pa rin ng HTTP value nito ang proxy listener. Kailangan ng ibang endpoint configuration kapag iba ang listener protocol.

Kapag ikaw mismo ang nagbigay ng proxy request option, inaasahan ng Guzzle na ibibigay mo rin ang nilalayong no values sa halip na awtomatikong kopyahin mula sa NO_PROXY. Kapaki-pakinabang ang walang lamang listahan sa nakahiwalay na proxy test. Kung may sinadyang bypass rules ang app, panatilihin ang mga iyon nang tahasan.

Kaugnay na mga artikulo