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 дестинација овие заглавија патуваат со пренесеното барање до проксито. За HTTPS дестинација преку CONNECT тие ѝ припаѓаат на поставката на тунелот, а не на секое шифрирано барање до страницата.
Обичниот аргумент headers ги опишува заглавијата на барањето до дестинацијата. Ова прокси автентикација припаѓа на друг примач. Ставањето на прокси сметката таму не е исто што и конфигурирање на претходната CONNECT размена.
make_headers ја гради вредноста на Basic заглавието. То не преговара за NTLM, не избира автоматски поддржана шема и не докажува дека проксито ја прима таа сметка.
Прокси со TLS слушател додава посебен прокси TLS контекст. http:// крајната точка погоре намерно опишува обичен HTTP слушател што пренесува HTTPS дестинација низ тунел.