ProxyManager, aracıya gönderilen başlıklar için ayrı bir proxy_headers argümanına sahiptir. Basic authentication kabul eden bir proxy için:

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)

Düz HTTP hedefi için bu başlıklar iletilen istekle birlikte proxy'ye gider. CONNECT kullanan HTTPS hedefi için bunlar her şifreli web sitesi isteğine değil, tünel kurulumuna aittir.

Olağan headers argümanı hedef istek başlıklarını tanımlar. Bu proxy authentication farklı bir alıcıya aittir. Proxy'nin hesabını oraya koymak, önceki CONNECT alışverişini yapılandırmakla eşdeğer değildir.

make_headers Basic başlık değerini oluşturur. NTLM pazarlığı yapmaz, desteklenen bir şemayı otomatik seçmez ve proxy'nin bu hesabı kabul ettiğini kanıtlamaz.

TLS listener'ı olan bir proxy ayrı bir proxy TLS context ekler. Yukarıdaki http:// uç noktası, bir HTTPS hedefini tünel üzerinden taşıyan sıradan bir HTTP listener'ı bilinçli olarak tanımlar.

İlgili makaleler