urllib3 ProxyManager: proxy_headers में Basic क्रेडेंशियल भेजें
ProxyManager.proxy_headers के ज़रिए Basic प्रॉक्सी क्रेडेंशियल दें ताकि वे HTTPS CONNECT के दौरान उपलब्ध रहें और गंतव्य हेडर न बनें।
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 गंतव्य के लिए ये हेडर अग्रेषित अनुरोध के साथ प्रॉक्सी तक जाते हैं। CONNECT वाले HTTPS गंतव्य के लिए ये टनल सेटअप का हिस्सा हैं, हर एन्क्रिप्टेड वेबसाइट अनुरोध का नहीं।
सामान्य headers आर्ग्युमेंट गंतव्य अनुरोध के हेडर बताता है। यह प्रॉक्सी प्रमाणीकरण किसी दूसरे प्राप्तकर्ता का है। वहाँ प्रॉक्सी का खाता रखना पहले के CONNECT आदान-प्रदान को कॉन्फ़िगर करने के बराबर नहीं है।
make_headers Basic हेडर का मान बनाता है। यह NTLM पर बातचीत नहीं करता, समर्थित स्कीम अपने आप नहीं चुनता और यह साबित नहीं करता कि प्रॉक्सी वह खाता स्वीकार करता है।
TLS श्रोता वाला प्रॉक्सी अलग प्रॉक्सी TLS संदर्भ जोड़ता है। ऊपर का http:// एंडपॉइंट जानबूझकर ऐसे सामान्य HTTP श्रोता का वर्णन करता है जो टनल से HTTPS गंतव्य ले जाता है।