ProxyManager té un argument separat proxy_headers per a les capçaleres enviades a l'intermediari. Per a un proxy que accepta autenticació 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)

Per a una destinació HTTP simple, aquestes capçaleres viatgen amb la petició reenviada cap al proxy. Per a una destinació HTTPS amb CONNECT, pertanyen a la configuració del túnel i no a cada petició xifrada al lloc web.

L'argument ordinari headers descriu les capçaleres de la petició de destinació. Aquesta autenticació de proxy pertany a un altre destinatari. Posar-hi el compte del proxy no equival a configurar l'intercanvi CONNECT anterior.

make_headers construeix el valor de la capçalera Basic. No negocia NTLM, no selecciona automàticament un esquema compatible ni demostra que el proxy accepti aquest compte.

Un proxy amb un oient TLS afegeix un context TLS de proxy separat. El punt de connexió http:// anterior descriu deliberadament un oient HTTP ordinari que transporta una destinació HTTPS per un túnel.

Articles relacionats