$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 geldt voor de gebruikersnaam en het wachtwoord afzonderlijk. Als je de hele URL codeert, worden ook de scheidingstekens voor schema en autoriteit gecodeerd die nodig zijn om de listener te vinden.

De HTTP-proxy draagt de HTTPS-API-verbinding via CONNECT. Het proxyaccount vervangt de API-authenticatie niet, en het is niet nodig om http_version naar 2.0 te forceren voor proxylogin.

De met komma's gescheiden no_proxy-lijst selecteert de bedoelde directe hosts. Zonder expliciete opties kan de component in plaats daarvan de ondersteunde omgevingsinstellingen gebruiken.

Dit bouwt CurlHttpClient rechtstreeks, wat het cURL-transport van PHP vereist. De generieke fabriek van Symfony kan een andere backend kiezen. Bij een resterende afwijzing identificeert u dat gekozen transport en behoudt u de fout van de proxyfase in plaats van het account naar een Authorization-header van de bestemming te verplaatsen.

Gerelateerde artikelen