ProxyManager ma osobny argument proxy_headers dla nagłówków wysyłanych do pośrednika. Dla serwera proxy akceptującego uwierzytelnianie 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)

Dla zwykłego celu HTTP te nagłówki podróżują z przekazanym żądaniem do serwera proxy. Dla celu HTTPS przez CONNECT należą do konfiguracji tunelu, a nie do każdego szyfrowanego żądania witryny.

Zwykły argument headers opisuje nagłówki żądania do celu. To uwierzytelnianie proxy należy do innego odbiorcy. Umieszczenie tam konta proxy nie jest równoznaczne ze skonfigurowaniem wcześniejszej wymiany CONNECT.

make_headers buduje wartość nagłówka Basic. Nie negocjuje NTLM, nie wybiera automatycznie obsługiwanego schematu i nie dowodzi, że serwer proxy akceptuje to konto.

Serwer proxy z nasłuchiwaczem TLS dodaje osobny kontekst TLS proxy. Powyższy punkt końcowy http:// celowo opisuje zwykły nasłuchiwacz HTTP przenoszący cel HTTPS przez tunel.

Powiązane artykuły