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 бүтүү чекит айландыруусуна жөнөтүү менен ишке ашырылбайт.

Тектеш макалалар