ProxyManager má samostatný argument proxy_headers pro hlavičky odesílané prostředníkovi. Pro proxy, které přijímá ověřování 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)

U obyčejného cíle HTTP tyto hlavičky putují s předávaným požadavkem k proxy. U cíle HTTPS přes CONNECT patří k sestavení tunelu, nikoli ke každému požadavku na šifrovaný web.

Běžný argument headers popisuje hlavičky požadavku na cíl. Toto ověřování proxy patří jinému příjemci. Umístit tam účet proxy není totéž jako nastavit dřívější výměnu CONNECT.

make_headers sestavuje hodnotu hlavičky Basic. Nevyjednává NTLM, automaticky nevybírá podporované schéma ani neprokazuje, že proxy tento účet přijímá.

Proxy s naslouchacím TLS přidává samostatný kontext TLS proxy. Výše uvedený koncový bod http:// záměrně popisuje běžný HTTP naslouchač, který přenáší cíl HTTPS tunelem.

Související články