يملك ProxyManager وسيطًا منفصلًا اسمه proxy_headers للترويسات المرسلة إلى الوسيط. لوكيل يقبل مصادقة Basic:

import urllib3

proxy_headers = urllib3.make_headers(
    proxy_basic_auth=f'{proxy_user}:{proxy_password}'
)
with urllib3.ProxyManager(
    'http://proxy.example:8080',
    proxy_headers=proxy_headers,
    timeout=urllib3.Timeout(connect=5, read=10),
) as http:
    response = http.request('GET', 'https://service.example/data')
    print(response.status)

بالنسبة إلى وجهة HTTP عادية تنتقل هذه الترويسات مع الطلب المحوَّل إلى الوكيل. أما وجهة HTTPS التي تستخدم CONNECT فهي تنتمي إلى إعداد النفق لا إلى كل طلب موقع مشفَّر.

الوسيط العادي headers يصف ترويسات طلب الوجهة. وهذه مصادقة الوكيل تخص مستلمًا آخر. ووضع حساب الوكيل هناك لا يعادل ضبط تبادل CONNECT السابق.

يبني make_headers قيمة ترويسة Basic. وهو لا يتفاوض على NTLM ولا يختار مخططًا مدعومًا تلقائيًا ولا يثبت أن الوكيل يقبل ذلك الحساب.

الوكيل الذي يملك مستمع TLS يضيف سياق TLS خاصًا بالوكيل. ونقطة النهاية http:// أعلاه تصف عمدًا مستمع HTTP عاديًا ينقل وجهة HTTPS عبر نفق.

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