urllib3 ProxyManager: Basic маалыматтарын proxy_headers ичинде жөнөтүү
Basic прокси маалыматтарын ProxyManager.proxy_headers аркылуу бериңиз, алар HTTPS CONNECT учурунда жеткиликтүү болуп, максат аталыштарына айланбайт.
ProxyManager'де ортомчого жөнөтүлүүчү аталыштар үчүн өзүнчө proxy_headers аргументи бар. Basic аутентификацияны кабыл алган прокси үчүн:
import urllib3
proxy_headers = urllib3.make_headers(
proxy_basic_auth=f'{proxy_user}:{proxy_password}'
)
with urllib3.ProxyManager(
'http://proxy.example:8080',
proxy_headers=proxy_headers,
timeout=urllib3.Timeout(connect=5, read=10),
) as http:
response = http.request('GET', 'https://service.example/data')
print(response.status)
Жөнөкөй HTTP максаты үчүн бул аталыштар кайра жөнөтүлгөн суроо менен бирге проксиге барат. CONNECT аркылуу HTTPS максаты үчүн алар тоннелди орнотууга таандык, ар бир шифрленген сайт суроосуна эмес.
Кадимки headers аргументи максат суроосунун аталыштарын сүрөттөйт. Бул прокси аутентификациясы башка алуучуга таандык. Проксинин эсебин ошол жерге коюу мурунку CONNECT алмашуусун конфигурациялоого барабар эмес.
make_headers Basic аталышынын маанисин курат. Ал NTLM боюнча сүйлөшүү жүргүзбөйт, колдоого алынган схеманы автоматтык түрдө тандабайт жана проксинин ошол эсепти кабыл аларын далилдебейт.
TLS угуучусу бар прокси өзүнчө прокси TLS контекстин кошот. Жогорку http:// акыркы чекити тоннел аркылуу HTTPS максатын ташыган жөнөкөй HTTP угуучусун атайын сүрөттөйт.