$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 si applica a il nome utente e la password separatamente. Codificare l'intero URL codificherebbe anche i separatori di schema e autorità necessari per individuare il listener.

Il proxy HTTP trasporta la connessione HTTPS dell'API tramite CONNECT. L'account proxy non sostituisce l'autenticazione API e non è necessario forzare http_version a 2.0 per l'accesso tramite proxy.

L'elenco no_proxy separato da virgole seleziona gli host diretti previsti. Senza opzioni esplicite, il componente può utilizzare invece le impostazioni d'ambiente supportate.

Questo costruisce CurlHttpClient direttamente, il che richiede il trasporto cURL di PHP. La factory generica di Symfony può selezionare un altro backend. In caso di rifiuto residuo, identifica quel trasporto selezionato e conserva l'errore della fase proxy invece di spostare l'account in un'intestazione Authorization di destinazione.

Articoli correlati