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 төгсгөлийн цэгийн хөрвүүлэлт рүү илгээх замаар хэрэгждэггүй.

Холбоотой нийтлэлүүд