Angi Symfony CurlHttpClients autentiserte proxy-URL
Kod proxykontoens komponenter og hold API-destinasjonen, no_proxy-unntakene og transportvalget eksplisitte.
$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 gjelder for brukernavnet og passordet separat. Å kode hele URL-en ville også kode skjema- og autoritetsseparatorene som trengs for å finne lytteren.
HTTP-proxyen bærer HTTPS-API-tilkoblingen gjennom CONNECT. Proxykontoen erstatter ikke API-autentisering, og det er ikke nødvendig å tvinge http_version til 2.0 for proxy-innlogging.
Den kommaadskilte no_proxy-listen velger de tiltenkte direkte vertene. Uten eksplisitte alternativer kan komponenten i stedet bruke sine støttede miljøinnstillinger.
Dette konstruerer CurlHttpClient direkte, noe som krever PHPs cURL-transport. Symfony sin generiske fabrikk kan velge en annen backend. Ved en gjenværende avvisning, identifiser den valgte transporten og behold feilen fra proxy-trinnet i stedet for å flytte kontoen til en Authorization-header for destinasjonen.