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.

Artikli relatati