Twisted ProxyAgent: basale autentikaasje foar gewoane HTTP
Stjoer in autentisearre gewoane HTTP-fersyk fia in Twisted ProxyAgent mei byte-wearden yn 'e fersykoanteksten.
ProxyAgent ferbynt fia it endpoint dat him jûn wurdt. Foar in gewoane HTTP-fersyk en in proxy dy't basale autentikaasje akseptearret, set de proxy-ynloggegevens yn 'e Proxy-Authorization-antekst fan dat fersyk.
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 fragmint giet derfan út dat de applikaasje al syn reactor hat. De metoade, de URI en de toande antiekstgegevens brûke bytes. Hâld echte oanmeldgegevens yn 'e oanmeldboarne fan 'e applikaasje; de plakhâlder lit allinnich sjen hoe't de antiekst boud wurdt. Base64 is in kodearring, dus fertroulikens hinget ôf fan 'e ferbining dy't it ferfiert.
De weromjûne Deferred jout in antwurdobjekt. It ûntfangen fan dat objekt sammelet it antwurdlichem net; lês it fia de dokumintearre interface foar lichemslêzen en behannelje asynkrone mislearrings. De tiidlimit fan it endpoint beheint it opbouwen fan 'e ferbining, net de folsleine libbensdoer fan it antwurd.
It foarbyld brûkt bewust in HTTP-bestimming. It foeget gjin CONNECT-ûnderhanneling foar HTTPS ta troch allinnich it URI-skema te feroarjen.