ProxyAgent se conectează prin endpointul care îi este furnizat. Pentru o cerere HTTP simplă și un proxy care acceptă autentificare de bază, puneți datele de autentificare ale proxy-ului în antetul Proxy-Authorization al acelei cereri.

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)

Acest fragment presupune că aplicația are deja reactorul ei. Metoda, URI-ul și datele de antet ilustrate folosesc octeți. Păstrați acreditările reale în sursa de acreditări a aplicației; substituentul arată doar cum este construit antetul. Base64 este o codificare, așa că confidențialitatea depinde de conexiunea care îl transportă.

Deferred-ul returnat oferă un obiect de răspuns. Primirea acelui obiect nu colectează corpul răspunsului; citiți-l prin interfața documentată de citire a corpului și gestionați eșecurile asincrone. Timeout-ul endpointului limitează stabilirea conexiunii, nu întreaga durată de viață a răspunsului.

Exemplul folosește intenționat o destinație HTTP. Nu adaugă o negociere CONNECT pentru HTTPS doar schimbând schema URI-ului.

Articole similare