Twisted ProxyAgent: autenticación básica para HTTP simple
Envíe una solicitud HTTP simple autenticada mediante un Twisted ProxyAgent con cabeceras de solicitud con valores de bytes.
ProxyAgent se conecta a través del endpoint que se le proporciona. Para una solicitud HTTP simple y un proxy que acepta autenticación básica, coloque el inicio de sesión del proxy en la cabecera Proxy-Authorization de esa solicitud.
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 supone que la aplicación ya tiene su reactor. El método, el URI y los datos de cabecera ilustrados usan bytes. Guarde las credenciales reales en la fuente de credenciales de la aplicación; el marcador solo muestra cómo se construye la cabecera. Base64 es una codificación, así que la confidencialidad depende de la conexión que la transporta.
El Deferred devuelto produce un objeto de respuesta. Recibir ese objeto no recoge el cuerpo de la respuesta; léalo mediante la interfaz documentada de lectura del cuerpo y gestione los fallos asíncronos. El tiempo de espera del endpoint limita el establecimiento de la conexión, no toda la vida de la respuesta.
El ejemplo usa intencionadamente un destino HTTP. No añade una negociación CONNECT para HTTPS solo cambiando el esquema del URI.