urllib3 ProxyManager: gửi thông tin Basic trong proxy_headers
Cung cấp thông tin đăng nhập Basic của proxy qua ProxyManager.proxy_headers để chúng có sẵn trong HTTPS CONNECT mà không trở thành header đích.
ProxyManager có đối số proxy_headers riêng cho các header gửi tới trung gian. Với proxy chấp nhận Basic authentication:
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)
Với đích HTTP thường, các header này đi cùng yêu cầu được chuyển tiếp tới proxy. Với đích HTTPS dùng CONNECT, chúng thuộc về bước thiết lập đường hầm chứ không phải từng yêu cầu website được mã hóa.
Đối số headers thông thường mô tả header yêu cầu tới đích. proxy authentication này thuộc về một người nhận khác. Đặt tài khoản của proxy ở đó không tương đương với việc cấu hình trao đổi CONNECT trước đó.
make_headers dựng giá trị header Basic. Nó không thương lượng NTLM, không tự động chọn một scheme được hỗ trợ và không chứng minh proxy chấp nhận tài khoản đó.
Proxy có TLS listener thêm một proxy TLS context riêng. Điểm cuối http:// ở trên cố ý mô tả một HTTP listener thông thường mang đích HTTPS qua đường hầm.