פֿאַרוואַנדלען אַ 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)
דער פֿראַגמענט נעמט אָן אַז די אַפּלאַקיישאַן האָט שוין איר reactor. ספּעציפֿיר דעם עכטן פּראָקסי־פּאָרט אין דער קאָנפֿיגוראַציע ווען ער איז נישט דער פֿאַרשטעל פֿון דעם HTTP URL. די HTTP פּראָקסי־ליסטע פֿאָרשלאָגט ענדפּוינט־קאַנדידאַטן פֿאַר אַ דערלויבטע פּובליקע HTTP בקשה אָן אַ פּראָקסי־קאָנטע. HostnameEndpoint פֿאַרמיידט אויך אַרײַנזעצן דעם האָסט־נאָמען אין אַן אַנדער מיט קאָלאָנען צעטיילטער קאָנפֿיגוראַציע־סטרינג.
דאָס פֿאַרוואַנדלט בלויז דעם רוטינג־אינפּוט. קרעדענציאַלן אַרײַנגעזעצט אין אַ URL ווערן נישט קיין אויטאָריזאַציע־קעפּל בלויז ווײַל דער האָסט און פּאָרט זענען צעשפּאַלט געוואָרן. צושטעל די פֿאָדערלעכע געשטיצטע פּראָקסי־אויטענטיפֿיקאַציע דורך דעם בקשה'ס אויטענטיפֿיקאַציע־אָרדענונג. פֿאַר אַ פּשוט HTTP ציל און אַ מיטלער וואָס פֿאָרשלאָגט Basic, צושטעלן ProxyAgent'ס Basic בקשה־קעפּלעך אַזאַ אָרדענונג.
אַ HTTPS פּראָקסי URL פֿאָדערט אַ TLS־פֿעיִיקע פֿאַרבינדונג צום פּראָקסי. אַ SOCKS URL פֿאָדערט SOCKS־פֿאַרהאַנדלונג. קיין איינער ווערט נישט אימפּלעמענטירט דורך שיקן די סכעמעס אין אַ פּשוטער HTTP ProxyAgent ענדפּוינט־פֿאַרוואַנדלונג.