Twisted ProxyAgent: autenticación básica para HTTP simple
Envíe unha solicitude HTTP simple autenticada mediante un Twisted ProxyAgent con cabeceiras de solicitude con valores de bytes.
ProxyAgent conéctase a través do endpoint que se lle fornece. Para unha solicitude HTTP simple e un proxy que acepta autenticación básica, poña o inicio de sesión do proxy na cabeceira Proxy-Authorization desa solicitude.
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)Este fragmento supón que a aplicación xa ten o seu reactor. O método, o URI e os datos de cabeceira ilustrados usan bytes. Garde as credenciais reais na fonte de credenciais da aplicación; o marcador só mostra como se constrúe a cabeceira. Base64 é unha codificación, así que a confidencialidade depende da conexión que a transporta.
O Deferred devolto produce un obxecto de resposta. Recibir ese obxecto non recolle o corpo da resposta; léao mediante a interface documentada de lectura do corpo e xestiona os fallos asíncronos. O tempo de espera do endpoint limita o establecemento da conexión, non toda a vida da resposta.
O exemplo usa intencionadamente un destino HTTP. Non engade unha negociación CONNECT para HTTPS só por cambiar o esquema do URI.