Définir l'URL de proxy authentifié de Symfony CurlHttpClient
Encodez les composants du compte proxy et gardez explicites la destination de l'API, les exceptions no_proxy et le choix du transport.
$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 s'applique à le nom d'utilisateur et le mot de passe séparément. Encoder l'URL entière encoderait aussi les séparateurs de schéma et d'autorité nécessaires pour localiser l'écouteur.
Le proxy HTTP transporte la connexion HTTPS de l'API via CONNECT. Le compte proxy ne remplace pas l'authentification de l'API, et forcer http_version à 2.0 n'est pas nécessaire pour la connexion au proxy.
La liste no_proxy séparée par des virgules sélectionne les hôtes directs voulus. Sans options explicites, le composant peut consommer à la place ses paramètres d'environnement pris en charge.
Ceci construit CurlHttpClient directement, ce qui nécessite le transport cURL de PHP. La fabrique générique de Symfony peut sélectionner un autre backend. En cas de rejet persistant, identifiez ce transport sélectionné et conservez l'erreur de l'étape proxy au lieu de déplacer le compte dans un en-tête Authorization de destination.