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.

Izihloko ezihlobene