urllib3 ProxyManager: proxy_headersలో Basic ఆధారాలను పంపడం
ProxyManager.proxy_headers ద్వారా Basic ప్రాక్సీ ఆధారాలను అందించండి, తద్వారా అవి HTTPS CONNECT సమయంలో అందుబాటులో ఉంటాయి, గమ్యస్థాన హెడర్లుగా మారకుండా.
ProxyManagerలో మధ్యవర్తికి పంపే హెడర్ల కోసం ప్రత్యేక proxy_headers ఆర్గ్యుమెంట్ ఉంది. Basic authentication అంగీకరించే ప్రాక్సీ కోసం:
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 ఆర్గ్యుమెంట్ గమ్యస్థాన అభ్యర్థన హెడర్లను వివరిస్తుంది. ఈ proxy authentication వేరే గ్రహీతకు చెందుతుంది. ప్రాక్సీ ఖాతాను అక్కడ పెట్టడం మునుపటి CONNECT మార్పిడిని కాన్ఫిగర్ చేయడంతో సమానం కాదు.
make_headers Basic హెడర్ విలువను నిర్మిస్తుంది. ఇది NTLM చర్చలు చేయదు, మద్దతు ఉన్న స్కీమ్ను స్వయంచాలకంగా ఎంచుకోదు, ఆ ఖాతాను ప్రాక్సీ అంగీకరిస్తుందని నిరూపించదు.
TLS listener ఉన్న ప్రాక్సీ ప్రత్యేక proxy TLS context జోడిస్తుంది. పైన ఉన్న http:// ఎండ్పాయింట్, HTTPS గమ్యస్థానాన్ని టన్నెల్ ద్వారా తీసుకెళ్లే సాధారణ HTTP listenerను ఉద్దేశపూర్వకంగా వివరిస్తుంది.