$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 aplícase a o nome de usuario e o contrasinal por separado. Codificar a URL completa tamén codificaría os separadores de esquema e autoridade necesarios para localizar o listener.

O proxy HTTP transporta a conexión HTTPS da API mediante CONNECT. A conta de proxy non substitúe a autenticación da API, e non é necesario forzar http_version a 2.0 para o inicio de sesión do proxy.

A lista no_proxy separada por comas selecciona os hosts directos previstos. Sen opcións explícitas, o compoñente pode consumir no seu lugar a súa configuración de contorno admitida.

Isto constrúe CurlHttpClient directamente, o que require o transporte cURL de PHP. A fábrica xenérica de Symfony pode seleccionar outro backend. Ante un rexeitamento persistente, identifique ese transporte seleccionado e conserve o erro da etapa de proxy en lugar de mover a conta a unha cabeceira Authorization de destino.

Artigos relacionados