$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 би кодирало също разделителите на схемата и authority, нужни за намиране на слушателя.

HTTP проксито пренася HTTPS API връзката чрез CONNECT. Прокси акаунтът не замества удостоверяването на API и не е нужно http_version да се налага на 2.0 за вход през прокси.

Разделеният със запетаи списък no_proxy избира желаните директни хостове. Без явни опции компонентът може да използва вместо това поддържаните от него настройки на средата.

Това конструира CurlHttpClient директно, което изисква cURL транспорта на PHP. Общата фабрика на Symfony може да избере друг бэкенд. При оставащо отхвърляне идентифицирайте избрания транспорт и запазете грешката от прокси етапа, вместо да премествате акаунта в заглавка Authorization на дестинацията.

Подобни статии