Twisted ProxyAgent: Basic-autentisering for vanlig HTTP
Send en autentisert vanlig HTTP-forespørsel gjennom en Twisted ProxyAgent med byte-verdier i forespørselshodene.
ProxyAgent kobler til gjennom endepunktet det får oppgitt. For en vanlig HTTP-forespørsel og en proxy som godtar Basic-autentisering, sett proxy-innloggingen i forespørselens Proxy-Authorization-hode.
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)Denne delen forutsetter at applikasjonen allerede har sin reactor. Metoden, URI-en og hodedataene i eksempelet bruker byte. Oppbevar ekte påloggingsinformasjon i applikasjonens kilde for påloggingsinformasjon; plassholderen viser bare hvordan hodet bygges. Base64 er en koding, så konfidensialiteten avhenger av forbindelsen som frakter den.
Den returnerte Deferred gir et responsobjekt. Å motta objektet samler ikke inn responskroppen; les den gjennom det dokumenterte grensesnittet for kroppslesting og håndter asynkrone feil. Tidsavbruddet på endepunktet begrenser opprettelsen av forbindelsen, ikke hele levetiden til responsen.
Eksempelet bruker bevisst et HTTP-mål. Det legger ikke til CONNECT-forhandling for HTTPS bare ved å endre URI-skjemaet.