ProxyAgent ansluter genom den endpoint som ges till den. För en vanlig HTTP-begäran och en proxy som accepterar Basic-autentisering placeras proxy-inloggningen i begärans Proxy-Authorization-huvud.

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)

Detta utdrag förutsätter att programmet redan har sin reactor. Metoden, URI:n och huvuddata i exemplet använder byte. Förvara riktiga autentiseringsuppgifter i programmets källa för autentiseringsuppgifter; platshållaren visar bara hur huvudet byggs. Base64 är en kodning, så sekretessen beror på anslutningen som transporterar den.

Den returnerade Deferred ger ett svarsobjekt. Att ta emot objektet samlar inte in svarskroppen; läs den via det dokumenterade gränssnittet för kroppsläsning och hantera asynkrona fel. Endpointens tidsgräns begränsar upprättandet av anslutningen, inte hela svarstiden.

Exemplet använder medvetet ett HTTP-mål. Det lägger inte till CONNECT-förhandling för HTTPS bara genom att byta URI-schema.

Relaterade artiklar