$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 прымяняецца да імя карыстальніка і пароль асобна. Кадзіраванне ўсяго URL таксама закадзіравала б раздзяляльнікі схемы і паўнамоцтваў, патрэбныя для знаходжання слухача.

HTTP-проксі перадае злучэнне HTTPS API праз CONNECT. Уліковы запіс проксі не замяняе аўтэнтыфікацыю API, і прымушаць http_version да 2.0 для ўваходу праз проксі не патрабуецца.

Спіс no_proxy, падзелены коскамі, выбірае патрэбныя прамыя хасты. Без відавочных параметраў кампанент можа выкарыстоўваць замест гэтага свае падтрыманыя налады асяроддзя.

Гэта стварае CurlHttpClient напрамую, што патрабуе транспарту cURL у PHP. Агульная фабрыка Symfony можа выбраць іншы бэкенд. Пры застаўшымся адхіленні вызначце гэты абраны транспарт і захавайце памылку этапу проксі замест пераносу ўліковага запісу ў загаловак Authorization прызначэння.

Падобныя артыкулы