Налаштування URL автентифікованого проксі в Symfony CurlHttpClient
Кодуйте компоненти облікового запису проксі та залишайте явними призначення API, винятки no_proxy і вибір транспорту.
$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 призначення.