Ange Symfony CurlHttpClients autentiserade proxy-URL
Koda proxykontots komponenter och håll API-destinationen, no_proxy-undantagen och transportvalet explicita.
$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 gäller för användarnamnet och lösenordet separat. Att koda hela URL:en skulle också koda schema- och auktoritetsavgränsarna som behövs för att hitta lyssnaren.
HTTP-proxyn transporterar HTTPS-API-anslutningen via CONNECT. Proxykontot ersätter inte API-autentisering, och det är inte nödvändigt att tvinga http_version till 2.0 för proxyinloggning.
Den kommaavgränsade no_proxy-listan väljer de avsedda direkta värdarna. Utan explicita alternativ kan komponenten i stället använda sina stödda miljöinställningar.
Detta konstruerar CurlHttpClient direkt, vilket kräver PHPs cURL-transport. Symfony:s generiska fabrik kan välja en annan backend. Vid en kvarstående avvisning, identifiera den valda transporten och behåll felet från proxy-steget i stället för att flytta kontot till en Authorization-header för destinationen.