urllib3 ProxyManager. Basic հավատարմագրերի ուղարկումը proxy_headers-ում
Տրամադրեք Basic պրոքսի հավատարմագրերը ProxyManager.proxy_headers-ի միջոցով, որպեսզի դրանք հասանելի լինեն HTTPS CONNECT-ի ընթացքում և չդառնան նպատակակետի վերնագրեր։
ProxyManager-ն ունի առանձին proxy_headers արգումենտ միջնորդին ուղարկվող վերնագրերի համար։ 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)
Սովորական HTTP նպատակակետի դեպքում այս վերնագրերը փոխանցված հարցման հետ գնում են պրոքսի։ CONNECT-ով HTTPS նպատակակետի դեպքում դրանք պատկանում են թունելի կարգաբերմանը, այլ ոչ թե յուրաքանչյուր գաղտնագրված կայքի հարցմանը։
Սովորական headers արգումենտը նկարագրում է նպատակակետի հարցման վերնագրերը։ Այս պրոքսի նույնականացումը պատկանում է այլ ստացողի։ Պրոքսիի հաշիվն այնտեղ դնելը համարժեք չէ նախորդ CONNECT փոխանակումը կարգավորելուն։
make_headers-ը կառուցում է Basic վերնագրի արժեքը։ Այն չի բանակցում NTLM-ի շուրջ, ինքնաշխատ չի ընտրում աջակցվող սխեմա և չի ապացուցում, որ պրոքսին ընդունում է այդ հաշիվը։
TLS լսողով պրոքսին ավելացնում է առանձին պրոքսի TLS կոնտեքստ։ Վերևի http:// վերջնակետը դիտավորյալ նկարագրում է սովորական HTTP լսող, որը թունելով տեղափոխում է HTTPS նպատակակետ։