Biddel URL tal-proxy HTTP f'endpoint Twisted
Iffratta URL tal-proxy HTTP konvenzjonali f'host u port minflok ma tgħaddiha bħala l-grammatika tad-deskrizzjoni tal-endpoint ta' Twisted.
Valur tal-proxy konvenzjonali bħal http://proxy.example:8080 huwa URL. clientFromString ta' Twisted jaċċetta deskrizzjoni tal-endpoint, bħal tcp:host=proxy.example:port=8080. Iż-żewġ strings jiddeskrivu informazzjoni relatata b'grammatiki differenti.
Jekk l-applikazzjoni taċċetta URL tal-proxy HTTP konvenzjonali, iffrattaha qabel ma toħloq l-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)
Is-silta tassumi li l-applikazzjoni diġà għandha r-reactor tagħha. Speċifika l-port reali tal-proxy fil-konfigurazzjoni meta ma jkunx id-default tal-URL HTTP. Il-lista tal-proxy HTTP toffri kandidati għall-endpoint għal talba HTTP pubblika permessa mingħajr kont tal-proxy. HostnameEndpoint jevita wkoll li jdaħħal l-isem tal-host fi string ta' konfigurazzjoni ieħor imqassam b'żewġ punti.
Dan jikkonverti biss l-input tar-routing. Il-kredenzjali inkorporati f'URL ma jsirux intestatura ta' awtorizzazzjoni sempliċement għax il-host u l-port ġew iffrattati. Ipprovdi kwalunkwe awtentikazzjoni tal-proxy appoġġata meħtieġa permezz tal-arranġament tal-awtentikazzjoni tat-talba. Għal destinazzjoni HTTP sempliċi u intermedjarju li joffri Basic, l-intestaturi tat-talba Basic ta' ProxyAgent jipprovdu arranġament bħal dan.
URL tal-proxy HTTPS jeħtieġ konnessjoni mal-proxy li tappoġġa TLS. URL SOCKS jeħtieġ negozjati SOCKS. L-ebda wieħed mhu implimentat billi dawk l-iskemi jintbagħtu fi konverżjoni sempliċi tal-endpoint HTTP ProxyAgent.