Սովորական վստահված սերվերի արժեքը, ինչպիսին է 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 վերջնակետի փոխարկմանը ուղարկելով։

Առնչվող հոդվածներ