የHTTP ፕሮክሲ URL ወደ Twisted መጨረሻ ነጥብ ይቀይሩ
የተለመደውን የHTTP ፕሮክሲ URL እንደ Twisted የመጨረሻ ነጥብ መግለጫ ሰዋሰው ከማስተላለፍ ይልቅ ወደ አስተናጋጅና ወደብ ይተንትኑ።
እንደ http://proxy.example:8080 ያለ የተለመደ የፕሮክሲ እሴት URL ነው። የTwisted clientFromString እንደ tcp:host=proxy.example:port=8080 ያለ የመጨረሻ ነጥብ መግለጫ ይቀበላል። ሁለቱ ሕብረቁምፊዎች ተዛማጅ መረጃን በተለያዩ ሰዋሰዎች ይገልጻሉ።
መተግበሪያው የተለመደ የHTTP ፕሮክሲ URL ከተቀበለ፣ የመጨረሻ ነጥቡን ከመፍጠሩ በፊት ይተንትኑት፦
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)
ክፍሉ መተግበሪያው ቀድሞውኑ ሬአክተሩ እንዳለው ይገምታል። እውነተኛውን የፕሮክሲ ወደብ በውቅር ውስጥ ይግለጹ የHTTP URL ነባሪው ካልሆነ። የHTTP ፕሮክሲ ዝርዝር ያለ ፕሮክሲ መለያ ለተፈቀደ የሕዝብ HTTP ጥያቄ የመጨረሻ ነጥብ እጩዎችን ያቀርባል። HostnameEndpoint እንዲሁ የአስተናጋጅ ስሙን በሌላ በኮሎን የተከፋፈለ የውቅር ሕብረቁምፊ ውስጥ ከማካተት ይቆጥባል።
ይህ የማዞሪያ ግቤቱን ብቻ ይቀይራል። በURL ውስጥ የተካተቱ ምስክሮች አስተናጋጁና ወደቡ ስለተተነተኑ ብቻ የፈቃድ ራስጌ አይሆኑም። የሚያስፈልገውን የፕሮክሲ ማረጋገጫ በጥያቄው የማረጋገጫ ዝግጅት በኩል ያቅርቡ። ለቀላል HTTP መዳረሻና Basic ለሚያቀርብ መካከለኛ፣ የProxyAgent Basic የጥያቄ ራስጌዎች እንዲህ ያለ ዝግጅት ያቀርባሉ።
የHTTPS ፕሮክሲ URL ከፕሮክሲው ጋር TLS የሚደግፍ ግንኙነት ይጠይቃል። የSOCKS URL የSOCKS ድርድር ይጠይቃል። ሁለቱም እነዚያን መርሃግብሮች ወደ ቀላል HTTP ProxyAgent የመጨረሻ ነጥብ ልወጣ በመላክ አይተገበሩም።