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 ചർച്ച ചേർക്കുന്നില്ല.