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.

Súvisiace články