Twisted ProxyAgent: autenticazione di base per HTTP semplice
Inviate una richiesta HTTP semplice autenticata tramite un Twisted ProxyAgent con intestazioni di richiesta con valori di byte.
ProxyAgent si connette attraverso l'endpoint che gli viene fornito. Per una richiesta HTTP semplice e un proxy che accetta l'autenticazione di base, mettete le credenziali del proxy nell'intestazione Proxy-Authorization di quella richiesta.
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)Questo frammento presuppone che l'applicazione abbia già il proprio reactor. Il metodo, l'URI e i dati di intestazione mostrati usano byte. Conservate le credenziali reali nella sorgente delle credenziali dell'applicazione; il segnaposto mostra solo come viene costruita l'intestazione. Base64 è una codifica, quindi la riservatezza dipende dalla connessione che la trasporta.
Il Deferred restituito produce un oggetto di risposta. Ricevere quell'oggetto non raccoglie il corpo della risposta; leggetelo tramite l'interfaccia documentata di lettura del corpo e gestite i fallimenti asincroni. Il timeout dell'endpoint limita l'instaurazione della connessione, non l'intera vita della risposta.
L'esempio usa intenzionalmente una destinazione HTTP. Non aggiunge una negoziazione CONNECT per HTTPS solo cambiando lo schema dell'URI.