$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 kommaseparerte 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.

Relaterte artikler