Guzzle опција proxy прихвата пуни URL крајње тачке. Поставите је у захтеву када само та операција треба да користи одабрани 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();

Пример претпоставља Guzzle 7 инсталиран преко Composer-а. Документацијску адресу замените стварним HTTP проксијем добављача или из листе HTTP проксија. Одредиште задржите у URL-у захтева: прокси је посредник, не ресурс који се преузима.

Овде је http_errors false да HTTP одговор с грешком остане доступан за преглед. Неуспешна повезивања и даље бацају изузетке преноса. HTTPS тунел одбијен током успостављања зато може пасти пре добијања обичног објекта одговора странице.

Проверите обрађивач ако се ограничења везе понашају другачије

Guzzle може користити различите HTTP обрађиваче. Документација наводи да уграђени cURL обрађивач подржава connect_timeout. Прилагођени обрађивач или окружење без PHP cURL-а нису нужно еквивалентни. Проверите обрађивач апликације пре претпоставке да копирана timeout опција делује.

Вреди поставити и укупни timeout. Уноси бесплатних листа могу престати да одговарају између провера, а подразумевана вредност није користан рок за захтев који мора брзо завршити.

Употреба прокси мапе

Мапа омогућава избор путања по шеми одредишта и експлицитно навођење хостова за заобилажење:

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

Користите овај низ уместо опције у облику стринга. Кључ HTTPS бира HTTPS одредишта; његова HTTP вредност и даље описује прокси слушаоца. Други протокол слушаоца тражи другачију конфигурацију крајње тачке.

Када сами задајете proxy опцију захтева, Guzzle очекује и жељене no вредности уместо аутоматског копирања из NO_PROXY. Празна листа је корисна за изолован прокси тест. У апликацији с намерним правилима заобилажења сачувајте их експлицитно.

Повезани чланци