$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 للوجهة.

مقالات ذات صلة