urllib3 ProxyManager: odoslanie údajov Basic v proxy_headers
Odovzdávajte prihlasovacie údaje Basic proxy cez ProxyManager.proxy_headers, aby boli dostupné počas HTTPS CONNECT a nestali sa hlavičkami cieľa.
ProxyManager má samostatný argument proxy_headers pre hlavičky odosielané sprostredkovateľovi. Pre proxy, ktorý prijíma overovanie 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)
Pri obyčajnom cieli HTTP tieto hlavičky cestujú s odovzdanou požiadavkou k proxy. Pri cieli HTTPS cez CONNECT patria k zostaveniu tunela, nie ku každej šifrovanej požiadavke na stránku.
Obyčajný argument headers opisuje hlavičky požiadavky na cieľ. Toto overovanie proxy patrí inému príjemcovi. Umiestnenie účtu proxy tam nie je to isté ako nastavenie skoršej výmeny CONNECT.
make_headers zostavuje hodnotu hlavičky Basic. Nevyjednáva NTLM, automaticky nevyberá podporovanú schému a nepreukazuje, že proxy tento účet prijíma.
Proxy s TLS poslucháčom pridáva samostatný kontext TLS proxy. Vyššie uvedený koncový bod http:// zámerne opisuje bežný HTTP poslucháč, ktorý prenáša cieľ HTTPS tunelom.