$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 اتصال API با HTTPS را از طریق CONNECT منتقل می‌کند. حساب پراکسی جای احراز هویت API را نمی‌گیرد و برای ورود از طریق پراکسی نیازی به اجبار http_version به 2.0 نیست.

فهرست no_proxy که با کاما جدا شده است، میزبان‌های مستقیم مورد نظر را انتخاب می‌کند. بدون گزینه‌های صریح، مؤلفه می‌تواند در عوض تنظیمات محیطی پشتیبانی‌شده را مصرف کند.

این CurlHttpClient را مستقیماً می‌سازد که به انتقال cURL در PHP نیاز دارد. کارخانه عمومی Symfony می‌تواند بک‌اند دیگری انتخاب کند. در صورت ادامه رد شدن، همان انتقال انتخاب‌شده را شناسایی کنید و خطای مرحله پراکسی را حفظ کنید به جای انتقال حساب به سرآیند Authorization مقصد.

مقالات مرتبط