$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 geld vir die gebruikersnaam en wagwoord afsonderlik. As die hele URL geënkodeer word, sou die skema- en outoriteitskeiers wat nodig is om die luisteraar te vind, ook geënkodeer word.

Die HTTP-proxy dra die HTTPS-API-verbinding deur CONNECT. Die proxyrekening vervang nie API-verifikasie nie, en dit is nie nodig om http_version na 2.0 te dwing vir proxyaanmelding nie.

Die kommaggeskeide no_proxy-lys kies die bedoelde direkte gashere. Sonder eksplisiete opsies kan die komponent eerder sy ondersteunde omgewingsinstellings gebruik.

Dit bou CurlHttpClient direk, wat PHP se cURL-vervoer vereis. Symfony se generiese fabriek kan 'n ander backend kies. Vir 'n oorblywende weiering, identifiseer daardie gekose vervoer en behou die fout van die proxyfase eerder as om die rekening na 'n bestemming Authorization-kop te skuif.

Verwante artikels