$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 se aplică pentru numele de utilizator și parola separat. Codificarea întregului URL ar codifica și separatoarele de schemă și autoritate necesare pentru găsirea ascultătorului.

Proxy-ul HTTP transportă conexiunea HTTPS a API prin CONNECT. Contul de proxy nu înlocuiește autentificarea API, iar forțarea http_version la 2.0 nu este necesară pentru autentificarea prin proxy.

Lista no_proxy separată prin virgule selectează gazdele directe dorite. Fără opțiuni explicite, componenta poate consuma în schimb setările de mediu acceptate.

Aceasta construiește direct CurlHttpClient, ceea ce necesită transportul cURL al PHP. Fabrica generică a Symfony poate selecta alt backend. Dacă respingerea persistă, identificați transportul selectat și păstrați eroarea etapei de proxy în loc să mutați contul într-un antet Authorization al destinației.

Articole similare