$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 gjeld for brukarnamnet og passordet kvar for seg. Å kode heile URL-en ville også kode skjema- og autoritetsskilja som trengst for å finne lyttaren.

HTTP-proxyen ber HTTPS-API-tilkoplinga gjennom CONNECT. Proxykontoen erstattar ikkje API-autentisering, og det er ikkje naudsynt å tvinge http_version til 2.0 for proxy-innlogging.

Den kommaåtskilde no_proxy-lista vel dei tiltenkte direkte vertane. Utan eksplisitte val kan komponenten i staden bruke dei støtta miljøinnstillingane sine.

Dette konstruerer CurlHttpClient direkte, noko som krev cURL-transporten i PHP. Den generiske fabrikken til Symfony kan velje ein annan backend. Ved ei gjenverande avvising, identifiser den valde transporten og hald på feilen frå proxy-trinnet i staden for å flytte kontoen til ein Authorization-header for destinasjonen.

Relaterte artiklar