Definir o URL de proxy autenticado do Symfony CurlHttpClient
Codifique os componentes da conta de proxy e mantenha explícitos o destino da API, as exceções de no_proxy e a seleção 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 aplica-se a o nome de usuário e a senha separadamente. Codificar o URL completo também codificaria os separadores de esquema e autoridade necessários para localizar o listener.
O proxy HTTP transporta a conexão HTTPS da API por meio de CONNECT. A conta de proxy não substitui a autenticação da API, e não é necessário forçar http_version para 2.0 no login do proxy.
A lista no_proxy separada por vírgulas seleciona os hosts diretos pretendidos. Sem opções explícitas, o componente pode consumir, em vez disso, suas configurações de ambiente suportadas.
Isto constrói CurlHttpClient diretamente, o que exige o transporte cURL do PHP. A fábrica genérica do Symfony pode selecionar outro backend. Se ainda houver rejeição, identifique esse transporte selecionado e mantenha o erro da etapa de proxy em vez de mover a conta para um cabeçalho Authorization de destino.