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 დანიშნულება.