Twisted ProxyAgent: సాధారణ HTTP కోసం Basic ప్రామాణీకరణ
బైట్ విలువలతో కూడిన అభ్యర్థన హెడర్లతో Twisted ProxyAgent ద్వారా ప్రామాణీకరించిన సాధారణ HTTP అభ్యర్థనను పంపండి.
ProxyAgent తనకు ఇచ్చిన endpoint ద్వారా కనెక్ట్ అవుతుంది. సాధారణ HTTP అభ్యర్థన మరియు Basic ప్రామాణీకరణను అంగీకరించే proxy కోసం, proxy లాగిన్ను ఆ అభ్యర్థన యొక్క Proxy-Authorization హెడర్లో ఉంచండి.
import base64
from twisted.internet.endpoints import TCP4ClientEndpoint
from twisted.web.client import ProxyAgent
from twisted.web.http_headers import Headers
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
token = base64.b64encode(b'alice:REPLACE_WITH_PROXY_PASSWORD')
headers = Headers({b'Proxy-Authorization': [b'Basic ' + token]})
pending = agent.request(b'GET', b'http://example.com/', headers)ఈ భాగం అప్లికేషన్కు ఇప్పటికే దాని reactor ఉందని ఊహిస్తుంది. పద్ధతి, URI మరియు ఉదాహరణలో చూపిన హెడర్ డేటా బైట్లను ఉపయోగిస్తాయి. నిజమైన ఆధారాలను అప్లికేషన్ యొక్క ఆధారాల మూలంలో ఉంచండి; ప్లేస్హోల్డర్ హెడర్ ఎలా నిర్మించబడుతుందో మాత్రమే చూపిస్తుంది. Base64 ఒక ఎన్కోడింగ్, కాబట్టి గోప్యత దానిని మోసే కనెక్షన్పై ఆధారపడి ఉంటుంది.
తిరిగి ఇచ్చిన Deferred ఒక response ఆబ్జెక్ట్ను ఇస్తుంది. ఆ ఆబ్జెక్ట్ను స్వీకరించడం response bodyని సేకరించదు; డాక్యుమెంట్ చేయబడిన body-reading ఇంటర్ఫేస్ ద్వారా దాన్ని చదవండి మరియు అసమకాలిక వైఫల్యాలను నిర్వహించండి. endpoint యొక్క కాల పరిమితి కనెక్షన్ ఏర్పాటును పరిమితం చేస్తుంది, response యొక్క పూర్తి జీవితకాలాన్ని కాదు.
ఉదాహరణ ఉద్దేశపూర్వకంగా HTTP గమ్యాన్ని ఉపయోగిస్తుంది. కేవలం URI స్కీమ్ను మార్చడం ద్వారా ఇది HTTPS కోసం CONNECT చర్చలను జోడించదు.