Cas URL seachfhreastalaí HTTP go críochphointe Twisted
Déan anailís ar URL seachfhreastalaí HTTP traidisiúnta ina óstach agus ina phort seachas é a chur ar aghaidh mar ghramadach tuairisce críochphointe Twisted.
Is URL é luach seachfhreastalaí traidisiúnta ar nós http://proxy.example:8080. Glacann clientFromString Twisted le tuairisc críochphointe, ar nós tcp:host=proxy.example:port=8080. Cuireann an dá shreang síos ar fhaisnéis ghaolmhar le gramadaí éagsúla.
Má ghlacann an feidhmchlár URL seachfhreastalaí HTTP traidisiúnta, déan anailís air sula gcruthaítear an críochphointe:
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)
Glacann an sliocht leis go bhfuil a reactor ag an bhfeidhmchlár cheana féin. Sonraigh fíorphort an tseachfhreastalaí sa chumraíocht nuair nach é réamhshocrú an URL HTTP é. Cuireann liosta seachfhreastalaithe HTTP iarrthóirí críochphointe ar fáil d'iarratas HTTP poiblí ceadaithe gan chuntas seachfhreastalaí. Seachnaíonn HostnameEndpoint freisin an t-óstainm a leabú i sreang chumraíochta eile atá scartha le colóin.
Ní thiontaíonn sé seo ach an t-ionchur ródaithe. Ní thiocfaidh dintiúir atá leabaithe in URL ina gceanntásc údaraithe díreach toisc gur anailísíodh an t-óstach agus an port. Soláthair aon fhíordheimhniú seachfhreastalaí tacaithe atá ag teastáil trí shocrú fíordheimhnithe an iarratais. I gcás cinn scríbe HTTP plain agus idirghabhálaí a thairgeann Basic, soláthraíonn ceanntásca iarratais Basic ProxyAgent socrú amháin den sórt sin.
Éilíonn URL seachfhreastalaí HTTPS nasc cumasach TLS chuig an seachfhreastalaí. Éilíonn URL SOCKS idirbheartaíocht SOCKS. Ní chuirtear ceachtar acu i bhfeidhm trí na scéimeanna sin a sheoladh isteach i dtiontú críochphointe HTTP ProxyAgent simplí.