HTTP प्रॉक्सीकडून येणाऱ्या Basic आव्हानासाठी ProxyBasicAuthHandler वापरा. हे सामान्य HTTP उदाहरण मार्ग आणि खाते एकाच opener मध्ये ठेवते:

import os
from urllib.request import (
    ProxyHandler, ProxyBasicAuthHandler,
    HTTPPasswordMgrWithDefaultRealm, build_opener,
)

proxy_url = 'http://proxy.example:8080'
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(
    None, proxy_url,
    os.environ['PROXY_USER'], os.environ['PROXY_PASSWORD'],
)
opener = build_opener(
    ProxyHandler({'http': proxy_url}),
    ProxyBasicAuthHandler(passwords),
)
with opener.open('http://example.com/', timeout=10) as response:
    print(response.status)

प्रत्यक्ष एंडपॉइंट आणि ऑपरेटरने दिलेले खाते वापरा. हा हँडलर प्रॉक्सीच्या आव्हानासाठी पासवर्ड व्यवस्थापक वापरतो; इच्छित प्रॉक्सी URI आणि realm जुळवा. गंतव्यस्थानावरील Basic प्रमाणीकरण दुसरा हँडलर वापरते.

opener थेट कॉल करणे हे सेटअप स्थानिक ठेवते. विनंतीचा URL मध्यस्थ नाही, वेबसाइटच राहतो. हा स्पष्ट HTTP मार्ग Basic देवाणघेवाण एन्क्रिप्ट करत नाही.

या उदाहरणावरून HTTPS बोगदा समर्थन गृहीत धरू नका. CONNECT दरम्यान 407 सेटअपच्या वेळी, सामान्य गंतव्य प्रतिसादापूर्वी होते; निवडलेल्या एकत्रीकरणाने तिथे प्रमाणीकरण हाताळले पाहिजे. वेबसाइटचा लॉगिन हँडलर बदलल्याने ते आधीचे आव्हान सुटू शकत नाही.

ओळखपत्रे असलेले प्रॉक्सी URL जुन्या उदाहरणांमध्ये आढळणारा दुसरा स्वरूप आहे. वापरल्यास URL विभाजक योग्यरित्या एन्कोड करा आणि तयार झालेला गुप्त-असलेला URL लॉगपासून दूर ठेवा.

संबंधित लेख