ProxyManager are un argument separat proxy_headers pentru antetele trimise intermediarului. Pentru un proxy care acceptă autentificare 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)

Pentru o destinație HTTP simplă, aceste antete călătoresc cu cererea redirecționată către proxy. Pentru o destinație HTTPS prin CONNECT, ele aparțin configurării tunelului, nu fiecărei cereri criptate către site.

Argumentul obișnuit headers descrie antetele cererii de destinație. Această autentificare de proxy aparține altui destinatar. Plasarea contului proxy acolo nu echivalează cu configurarea schimbului CONNECT anterior.

make_headers construiește valoarea antetului Basic. Nu negociază NTLM, nu selectează automat o schemă acceptată și nu dovedește că proxy-ul acceptă acel cont.

Un proxy cu un ascultător TLS adaugă un context TLS de proxy separat. Punctul final http:// de mai sus descrie intenționat un ascultător HTTP obișnuit care transportă o destinație HTTPS printr-un tunel.

Articole similare