urllib3 ProxyManager: odeslání údajů Basic v proxy_headers
Předávejte přihlašovací údaje Basic proxy přes ProxyManager.proxy_headers, aby byly dostupné během HTTPS CONNECT a nestaly se hlavičkami cíle.
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.