Twisted ProxyAgent: autenticação básica para HTTP simples
Envie uma requisição HTTP simples autenticada através de um Twisted ProxyAgent com cabeçalhos de requisição com valores de bytes.
ProxyAgent conecta-se através do endpoint que lhe é fornecido. Para uma requisição HTTP simples e um proxy que aceita autenticação básica, coloque o login do proxy no cabeçalho Proxy-Authorization dessa requisição.
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 trecho pressupõe que a aplicação já tenha seu reactor. O método, o URI e os dados de cabeçalho ilustrados usam bytes. Guarde as credenciais reais na fonte de credenciais da aplicação; o marcador apenas mostra como o cabeçalho é construído. Base64 é uma codificação, portanto a confidencialidade depende da conexão que a transporta.
O Deferred retornado produz um objeto de resposta. Receber esse objeto não coleta o corpo da resposta; leia-o pela interface documentada de leitura do corpo e trate falhas assíncronas. O tempo limite do endpoint limita o estabelecimento da conexão, não toda a vida da resposta.
O exemplo usa intencionalmente um destino HTTP. Ele não acrescenta negociação CONNECT para HTTPS apenas alterando o esquema do URI.