$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 gilt für den Benutzernamen und das Passwort getrennt. Würde man die gesamte URL kodieren, würden auch die Trennzeichen für Schema und Autorität kodiert, die zum Auffinden des Listeners nötig sind.

Der HTTP-Proxy überträgt die HTTPS-API-Verbindung über CONNECT. Das Proxy-Konto ersetzt nicht die API-Authentifizierung, und für die Proxy-Anmeldung ist es nicht erforderlich, http_version auf 2.0 zu erzwingen.

Die kommagetrennte Liste no_proxy wählt die vorgesehenen direkten Hosts. Ohne explizite Optionen kann die Komponente stattdessen ihre unterstützten Umgebungseinstellungen verwenden.

Dies erstellt CurlHttpClient direkt, was den cURL-Transport von PHP erfordert. Die generische Fabrik von Symfony kann ein anderes Backend wählen. Bei einer verbleibenden Ablehnung identifizieren Sie diesen gewählten Transport und behalten den Fehler der Proxy-Stufe bei, anstatt das Konto in einen Authorization-Header des Ziels zu verschieben.

Ähnliche Artikel