$proxy = 'http://'
    . rawurlencode($proxyUser) . ':'
    . rawurlencode($proxyPassword)
    . '@proxy.example:8080';

$client = new \Symfony\Component\HttpClient\CurlHttpClient([
    'proxy' => $proxy,
    'no_proxy' => 'localhost,internal.example',
]);
$response = $client->request('GET', 'https://api.example/items');
$status = $response->getStatusCode();

rawurlencode застосовується до ім'я користувача та пароль окремо. Кодування всього URL також закодувало б роздільники схеми й повноважень, потрібні для пошуку слухача.

HTTP-проксі передає HTTPS-з'єднання API через CONNECT. Обліковий запис проксі не замінює автентифікацію API, і примусово задавати http_version як 2.0 для входу через проксі не потрібно.

Список no_proxy, розділений комами, вибирає потрібні прямі хости. Без явних параметрів компонент може натомість використовувати підтримувані налаштування середовища.

Це напряму створює CurlHttpClient, що потребує транспорту cURL у PHP. Універсальна фабрика Symfony може вибрати інший бекенд. Якщо відмова залишається, визначте цей вибраний транспорт і збережіть помилку етапу проксі, а не переносьте обліковий запис у заголовок Authorization призначення.

Схожі статті