Guqula i-URL ye-proxy ye-HTTP ibe i-Twisted endpoint
Hlukanisa i-URL evamile ye-proxy ye-HTTP ibe i-host ne-port esikhundleni sokuyidlulisa njengohlelo lolimi lwencazelo ye-Twisted endpoint.
Inani le-proxy elivamile njenge-http://proxy.example:8080 yi-URL. I-clientFromString ye-Twisted yamukela incazelo ye-endpoint, njenge-tcp:host=proxy.example:port=8080. Lezi zintambo ezimbili zichaza ulwazi oluhlobene ngolimi oluhlukile.
Uma uhlelo lwamukela i-URL evamile ye-proxy ye-HTTP, yihlukanise ngaphambi kokudala i-endpoint:
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)
Lesi siqephu sithatha ukuthi uhlelo selunayo i-reactor yalo. Chaza i-port yangempela ye-proxy ekulungiseleleni uma ingeyona ezenzakalelayo ye-URL ye-HTTP. Uhlu lwe-proxy ye-HTTP lunikeza abantu abangaba yizingxenye ze-endpoint esicelweni se-HTTP esivumelekile esidlangalaleni ngaphandle kwe-akhawunti ye-proxy. I-HostnameEndpoint iphinde igweme ukufaka igama le-host kwenye intambo yokulungiselela ehlukaniswe ngamakholoni.
Lokhu kuguqula kuphela okokufaka kokuhamba kwedatha. Imininingwane yokungena efakwe ku-URL ayibi yisihloko sokugunyaza ngenxa nje yokuthi i-host ne-port kuhlukanisiwe. Nikeza noma yikuphi ukuqinisekiswa kwe-proxy okusekelwayo okudingekayo ngohlelo lokuqinisekisa lwesicelo. Ngendawo elula ye-HTTP nomlamuli onikeza i-Basic, izihloko zesicelo ze-Basic ze-ProxyAgent zinikeza uhlelo olunjalo.
I-URL ye-proxy ye-HTTPS idinga ukuxhumana ne-proxy okukwazi i-TLS. I-URL ye-SOCKS idinga izingxoxo ze-SOCKS. Akukho kokubili okusetshenziswayo ngokuthumela lezo zinhlelo ekuguquleni okulula kwe-HTTP ProxyAgent endpoint.