Python urllib: प्रोक्सी राउटिङलाई वेबसाइट Basic Authentication सँग जोड्ने
ग्लोबल opener दुई पटक नबदली urllib राउटिङ र गन्तव्यको Basic authentication एउटै स्पष्ट opener मा जोड्नुहोस्।
install_opener() लाई दुई पटक कल गर्दा दोस्रो opener पहिलोमा थपिँदैन। यसले module को default opener प्रतिस्थापन गर्छ। यदि एउटा वस्तुले proxy जान्छ र अर्कोले वेबसाइट लगइन जान्छ भने आवश्यक handlers सहित एउटै opener बनाउनुहोस्।
import os
from urllib.request import (ProxyHandler, HTTPBasicAuthHandler,
HTTPPasswordMgrWithDefaultRealm, build_opener)
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(None, 'https://example.com/private/',
os.environ['SITE_USER'], os.environ['SITE_PASSWORD'])
opener = build_opener(
ProxyHandler({'https': 'http://203.0.113.10:8080'}),
HTTPBasicAuthHandler(passwords),
)
with opener.open('https://example.com/private/report', timeout=10) as response:
body = response.read()proxy र गन्तव्य उदाहरण हुन्। सार्वजनिक HTTP proxy मार्फत पुग्न सकिने सार्वजनिक सेवाका लागि HTTP proxy सूची ले routing handler का लागि उम्मेदवार endpoints दिन्छ। यो opener ले HTTPS अनुरोध HTTP proxy मार्फत पठाउँछ र गन्तव्यको Basic चुनौती सम्हाल्छ। यसले proxy प्रमाणीकरण कन्फिगर गर्दैन।
यदि proxy लाई पनि लगइन चाहिन्छ भने समर्थित proxy-प्रमाणीकरण व्यवस्था छुट्टै छान्नुहोस्। CONNECT को समयमा 407 गन्तव्यले आफ्नै चुनौती जारी गर्न सक्नुअघि हुन्छ। पासवर्ड म्यानेजरमा वेबसाइट क्रेडेन्सियल थप्दा त्यो अघिल्लो आदानप्रदान पूरा हुँदैन।
opener.open() सिधै कल गर्दा कन्फिगरेसन कार्यसँगै रहन्छ। एप्लिकेसनले जानाजान सबै सुविधाजनक कलले यो opener साझा गरोस् भन्ने नचाहेसम्म module-व्यापी default बदल्न आवश्यक छैन।