$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 foydalanuvchi nomi va parolni alohida uchun amal qiladi. Butun URL manzilini kodlash tinglovchini topish uchun zarur sxema va vakolat ajratgichlarini ham kodlaydi.

HTTP proxy HTTPS API ulanishini CONNECT orqali olib o'tadi. Proxy hisobi API autentifikatsiyasini almashtirmaydi va proxy orqali kirish uchun http_version ni 2.0 ga majburlash talab qilinmaydi.

Vergul bilan ajratilgan no_proxy ro'yxati ko'zda tutilgan to'g'ridan-to'g'ri xostlarni tanlaydi. Aniq parametrlar bo'lmasa, komponent uning o'rniga qo'llab-quvvatlanadigan muhit sozlamalaridan foydalanishi mumkin.

Bu CurlHttpClient ni to'g'ridan-to'g'ri yaratadi, buning uchun PHP'dagi cURL transporti zarur. Symfony'ning umumiy fabrikasi boshqa backend tanlashi mumkin. Agar rad etish davom etsa, o'sha tanlangan transportni aniqlang va hisobni manzilning Authorization sarlavhasiga ko'chirish o'rniga proxy bosqichidagi xatoni saqlang.

O'xshash maqolalar