Python urllib: HTTP అభ్యర్థనల కోసం Basic ప్రాక్సీ ప్రామాణీకరణ
Basic HTTP ప్రాక్సీ సవాల్ కోసం స్పష్టమైన urllib opener నిర్మించి, ఈ సాధారణ HTTP మార్పిడిని HTTPS CONNECT ప్రామాణీకరణ నుండి వేరు చేయండి.
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 ను లాగ్ల నుండి దూరంగా ఉంచండి.