Twisted ProxyAgent: Basic-Authentifizéierung fir einfacht HTTP
Schéckt eng authentifizéiert einfach HTTP-Ufro iwwer en Twisted ProxyAgent mat Bytewäerter an den Ufro-Headeren.
ProxyAgent verbënnt sech iwwer den Endpoint, deen him ginn ass. Bei enger einfacher HTTP-Ufro an engem Proxy, deen Basic-Authentifizéierung akzeptéiert, gehéiert de Proxy-Login an den Proxy-Authorization-Header vun där Ufro.
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)Dëse Fragment setzt viraus, datt d'Applikatioun hire Reactor schonn huet. D'Method, den URI an déi gewisen Headerdaten benotze Bytes. Richteg Authentifikatiounsdonnéeë gehéieren an d'Quell vun der Applikatioun; den Platzhalter weist just, wéi den Header opgebaut gëtt. Base64 ass eng Kodéierung, also hänkt d'Vertraulechkeet vun der Verbindung of, déi se transportéiert.
Den zréckginnene Deferred liwwert en Äntwert-Objet. Den Empfang vun deem Objet samelecht den Äntwertkierper net; liest en iwwer déi dokumentéiert Interface fir de Kierper ze liesen a behandelt asynchron Feeler. Den Timeout vum Endpoint begrenzt den Opbau vun der Verbindung, net déi ganz Liewensdauer vun der Äntwert.
D'Beispill benotzt bewosst en HTTP-Zil. Et füügt keng CONNECT-Verhandlung fir HTTPS dobäi, just andeems den URI-Schema geännert gëtt.