Kutima proksa valoro kiel http://proxy.example:8080 estas URL. La clientFromString de Twisted akceptas finpunktan priskribon, kiel tcp:host=proxy.example:port=8080. La du signoĉenoj priskribas rilatajn informojn per malsamaj gramatikoj.

Se la aplikaĵo akceptas kutiman HTTP-proksan URL-on, analizu ĝin antaŭ ol krei la finpunkton:

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)

La fragmento supozas, ke la aplikaĵo jam havas sian reactor. Indiku la realan proksan pordon en la agordo, kiam ĝi ne estas la defaŭlto de la HTTP-URL. La listo de HTTP-proksoj proponas finpunktajn kandidatojn por permesita publika HTTP-peto sen proksa konto. HostnameEndpoint ankaŭ evitas enmeti la gastigantan nomon en alian dupunkte dividitan agordan signoĉenon.

Ĉi tio konvertas nur la enigon de enkursigado. Akreditaĵoj enmetitaj en URL-on ne fariĝas rajtiga kaplinio nur ĉar la gastiganto kaj pordo estis analizitaj. Provizu ajnan bezonatan subtenatan proksan aŭtentikigon per la aŭtentikiga aranĝo de la peto. Por simpla HTTP-celo kaj peranto proponanta Basic, la Basic-petaj kaplinioj de ProxyAgent provizas unu tian aranĝon.

HTTPS-proksa URL postulas TLS-kapablan konekton al la prokso. SOCKS-URL postulas SOCKS-negocon. Neniun el ili efektivigas sendante tiujn skemojn en simplan HTTP-ProxyAgent-finpunktan konvertiĝon.

Rilataj artikoloj