Twisted ProxyAgent: basisauthenticatie voor gewone HTTP
Stuur een geauthenticeerd gewoon HTTP-verzoek via een Twisted ProxyAgent met bytewaarden in de verzoekheaders.
ProxyAgent maakt verbinding via het endpoint dat eraan wordt gegeven. Voor een gewoon HTTP-verzoek en een proxy die basisauthenticatie accepteert, zet u de proxy-aanmelding in de Proxy-Authorization-header van dat verzoek.
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)Dit fragment gaat ervan uit dat de applicatie al zijn reactor heeft. De methode, de URI en de getoonde headergegevens gebruiken bytes. Bewaar echte inloggegevens in de bron van de applicatie; de plaatsaanduiding laat alleen zien hoe de header wordt opgebouwd. Base64 is een codering, dus vertrouwelijkheid hangt af van de verbinding die het vervoert.
De teruggegeven Deferred levert een response-object op. Het ontvangen van dat object verzamelt de response-body niet; lees die via de gedocumenteerde interface voor het lezen van de body en behandel asynchrone fouten. De time-out van het endpoint begrenst het tot stand brengen van de verbinding, niet de volledige levensduur van de respons.
Het voorbeeld gebruikt bewust een HTTP-bestemming. Het voegt geen CONNECT-onderhandeling voor HTTPS toe door alleen het URI-schema te wijzigen.