ProxyAgent es connecta a través de l'endpoint que se li proporciona. Per a una sol·licitud HTTP plana i un proxy que accepta autenticació bàsica, poseu l'inici de sessió del proxy a la capçalera Proxy-Authorization d'aquesta sol·licitud.

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)

Aquest fragment assumeix que l'aplicació ja té el seu reactor. El mètode, l'URI i les dades de capçalera il·lustrades fan servir bytes. Guardeu les credencials reals a la font de credencials de l'aplicació; el marcador només mostra com es construeix la capçalera. Base64 és una codificació, així que la confidencialitat depèn de la connexió que la transporta.

El Deferred retornat produeix un objecte de resposta. Rebre aquest objecte no recull el cos de la resposta; llegiu-lo amb la interfície documentada de lectura del cos i gestioneu les fallades asíncrones. El temps d'espera de l'endpoint limita l'establiment de la connexió, no la vida completa de la resposta.

L'exemple utilitza intencionadament una destinació HTTP. No afegeix una negociació CONNECT per a HTTPS només canviant l'esquema de l'URI.

Articles relacionats