En übleche Proxywäert wéi http://proxy.example:8080 ass eng URL. Dem Twisted säi clientFromString akzeptéiert eng Endpointbeschreiwung, wéi tcp:host=proxy.example:port=8080. Déi zwou Zeecheketten beschreiwen verwandt Informatioun mat verschiddene Grammatiken.

Wann d'Applikatioun eng üblech HTTP-Proxy-URL akzeptéiert, deelt se op, ier den Endpunkt erstallt gëtt:

import os
from urllib.parse import urlsplit
from twisted.internet.endpoints import HostnameEndpoint
from twisted.web.client import ProxyAgent

proxy = urlsplit(os.environ['http_proxy'])
if proxy.scheme != 'http' or not proxy.hostname:
    raise ValueError('Expected an HTTP proxy URL')
port = proxy.port if proxy.port is not None else 80
endpoint = HostnameEndpoint(reactor, proxy.hostname, port, timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)

Den Ausschnëtt setzt viraus, datt d'Applikatioun schonn hire reactor huet. Gitt de richtegen Proxyport an der Konfiguratioun un, wann et net den Default vun der HTTP-URL ass. D'HTTP-Proxylëscht bitt Endpunktkandidaten fir eng erlaabten ëffentlech HTTP-Ufro ouni Proxykont. HostnameEndpoint vermeit och den Hostname an eng aner duerch Doppelpunkte getrennte Konfiguratiounszeechenkette anzebauen.

Dëst wandelt nëmmen d'Routinginput ëm. Umellen, déi an enger URL agebaut sinn, ginn net just doduerch en Autorisatiounsheader, well Host a Port opgedeelt goufen. Stellt all néideg ënnerstëtzt Proxy-Authentifikatioun iwwer d'Authentifikatiounsariichtung vun der Ufro zur Verfügung. Fir en einfachen HTTP-Zil an en Intermédiaire, deen Basic ubitt, bidden dem ProxyAgent seng Basic-Ufroheader sou eng Ariichtung.

Eng HTTPS-Proxy-URL erfuerdert eng TLS-fäeg Verbindung zum Proxy. Eng SOCKS-URL erfuerdert SOCKS-Verhandlungen. Keent vun deenen zwee gëtt ëmgesat, andeems déi Schemata an eng einfach HTTP-ProxyAgent-Endpunktkonversioun geschéckt ginn.

Ähnlech Artikelen