urllib3 ProxyManager: hantar kelayakan Basic dalam proxy_headers
Bekalkan kelayakan proksi Basic melalui ProxyManager.proxy_headers supaya tersedia semasa HTTPS CONNECT tanpa menjadi pengepala destinasi.
ProxyManager mempunyai argumen proxy_headers yang berasingan untuk pengepala yang dihantar kepada perantara. Untuk proksi yang menerima pengesahan 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)
Untuk destinasi HTTP biasa, pengepala ini bergerak bersama permintaan yang diteruskan ke proksi. Untuk destinasi HTTPS melalui CONNECT, ia tergolong dalam persediaan terowong dan bukan setiap permintaan laman web yang disulitkan.
Argumen headers biasa menerangkan pengepala permintaan destinasi. Pengesahan proksi ini milik penerima lain. Meletakkan akaun proksi di situ tidak sama dengan mengkonfigurasi pertukaran CONNECT terdahulu.
make_headers membina nilai pengepala Basic. Ia tidak berunding NTLM, tidak memilih skema yang disokong secara automatik dan tidak membuktikan bahawa proksi menerima akaun itu.
Proksi dengan pendengar TLS menambah konteks TLS proksi yang berasingan. Titik akhir http:// di atas sengaja menerangkan pendengar HTTP biasa yang membawa destinasi HTTPS melalui terowong.