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 дестинация през тунел.

Подобни статии