ऑफ़िस का प्रॉक्सी एक खाता माँगता है। उसके पीछे की वेबसाइट दूसरा माँगती है। Requests के पास इन दोनों Basic लॉगिन के लिए अलग इनपुट हैं: प्रॉक्सी URL में मौजूद क्रेडेंशियल और अनुरोध का auth आर्ग्युमेंट।

from urllib.parse import quote
import requests

proxy_url = (
    f"http://{quote(proxy_user, safe='')}:"
    f"{quote(proxy_password, safe='')}@proxy.example:8080"
)
response = requests.get(
    "https://reports.example/private/",
    proxies={"https": proxy_url},
    auth=(site_user, site_password),
    timeout=(5, 20),
)
response.raise_for_status()

चारों खाता वेरिएबल ऐप्लिकेशन की क्रेडेंशियल कॉन्फ़िगरेशन से आते हैं। प्रॉक्सी का उपयोगकर्ता नाम और पासवर्ड अलग-अलग एन्कोड करना at चिह्न जैसे अक्षरों को URL विभाजक में बदले बिना सुरक्षित रखता है।

डिक्शनरी की https कुंजी HTTPS गंतव्य के लिए यह मार्ग चुनती है। इसका मान अब भी http:// से शुरू होता है, क्योंकि इस उदाहरण प्रॉक्सी तक पहुँचने में यही प्रोटोकॉल इस्तेमाल होता है।

उस HTTPS अनुरोध में प्रॉक्सी लॉगिन CONNECT आदान-प्रदान का हिस्सा है। वेबसाइट लॉगिन स्थापित टनल से होकर जाने वाले बाद के अनुरोध का हिस्सा है। एडाप्टर को अपने ही URL से प्रॉक्सी प्राधिकरण निकालने देने पर वह संबंधित हॉप पर ही रहता है; इस Basic मामले के लिए कोई संयुक्त प्रमाणीकरण क्लास ज़रूरी नहीं है।

407 बिचौलिए की चुनौती बताता है। वेबसाइट से आया 401 गंतव्य की चुनौती बताता है। दोनों कॉन्फ़िगर किए गए खातों में से किस पर ध्यान देना है, यह तय करने के लिए उसी प्रतिक्रिया का उपयोग करें।

संबंधित लेख