Configurar la URL de proxy autenticado de Symfony CurlHttpClient
Codifique los componentes de la cuenta de proxy y mantenga explícitos el destino de la API, las excepciones de no_proxy y la selección de transporte.
$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 se aplica a el nombre de usuario y la contraseña por separado. Codificar la URL completa también codificaría los separadores de esquema y autoridad necesarios para localizar el listener.
El proxy HTTP transporta la conexión HTTPS de la API mediante CONNECT. La cuenta de proxy no sustituye la autenticación de la API, y no es necesario forzar http_version a 2.0 para el inicio de sesión del proxy.
La lista no_proxy separada por comas selecciona los hosts directos previstos. Sin opciones explícitas, el componente puede consumir en su lugar su configuración de entorno admitida.
Esto construye CurlHttpClient directamente, lo que requiere el transporte cURL de PHP. La fábrica genérica de Symfony puede seleccionar otro backend. Si persiste un rechazo, identifique ese transporte seleccionado y conserve el error de la etapa de proxy en lugar de mover la cuenta a una cabecera Authorization del destino.