urllib3 ProxyManager: Basic ئىسپاتلىرىنى proxy_headers ئىچىدە ئەۋەتىش
Basic proxy ئىسپاتلىرىنى ProxyManager.proxy_headers ئارقىلىق تەمىنلەڭ، شۇنداق بولغاندا ئۇلار HTTPS CONNECT جەريانىدا قولايلىق بولىدۇ ۋە destination headers غا ئايلانمايدۇ.
ProxyManager نىڭ ۋاسىتىچىگە ئەۋەتىلىدىغان headers ئۈچۈن ئايرىم proxy_headers پارامېتىرى بار. Basic authentication نى قوبۇل قىلىدىغان proxy ئۈچۈن:
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)
ئادەتتىكى HTTP destination ئۈچۈن، بۇ headers ئەۋەتىلگەن تەلەپ بىلەن بىرگە proxy غا بارىدۇ. CONNECT نى ئىشلىتىدىغان HTTPS destination ئۈچۈن، ئۇلار ھەر بىر شىفىرلانغان تور بېكەت تەلىپىگە ئەمەس، tunnel تەييارلاشقا تەۋە.
ئادەتتىكى headers پارامېتىرى destination تەلەپ headers نى تەسۋىرلەيدۇ. بۇ proxy authentication باشقا قوبۇل قىلغۇچىغا تەۋە. proxy نىڭ ھېساباتىنى ئۇ يەرگە قويۇش ئىلگىرىكى CONNECT ئالماشتۇرۇشنى سەپلەش بىلەن باراۋەر ئەمەس.
make_headers Basic header قىممىتىنى قۇرىدۇ. ئۇ NTLM سۆھبىتىنى ئېلىپ بارمايدۇ، قوللايدىغان scheme نى ئۆزلۈكىدىن تاللىمايدۇ ۋە proxy نىڭ بۇ ھېساباتنى قوبۇل قىلىدىغانلىقىنى ئىسپاتلىمايدۇ.
TLS listener غا ئىگە proxy ئايرىم proxy TLS context نى قوشىدۇ. يۇقىرىدىكى http:// endpoint ئەتەيلىك بىلەن HTTPS destination نى tunnel ئارقىلىق ئېلىپ ماڭىدىغان ئادەتتىكى HTTP listener نى تەسۋىرلەيدۇ.