ProxyAgent kobler seg til gjennom endepunktet som oppgis. Ved en vanlig HTTP-forespørsel og en proxy som aksepterer Basic-autentisering, plasseres proxy-påloggingen 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)

Utdraget forutsetter at applikasjonen allerede har sin reactor. Metoden, URI-en og hodedataene som vises, bruker byte. Hold ekte påloggingsdetaljer i applikasjonens kilde for påloggingsdetaljer; plassholderen viser kun hvordan hodet settes sammen. Base64 er en koding, og konfidensialiteten avhenger derfor av forbindelsen som bærer den.

Den returnerte Deferred gir et respons-objekt. Mottak av objektet henter ikke inn responskroppen; les den via det dokumenterte grensesnittet for kroppslesing og håndter asynkrone feil. Endepunktets tidsavbrudd 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 å bytte URI-skjema.

Relaterte artikler