urllib3 ProxyManager: Basic məlumatlarını proxy_headers ilə göndərin
Basic proxy məlumatlarını ProxyManager.proxy_headers vasitəsilə verin ki, HTTPS CONNECT zamanı mövcud olsun və təyinat başlıqlarına çevrilməsin.
ProxyManager-in vasitəçiyə göndərilən başlıqlar üçün ayrıca proxy_headers arqumenti var. Basic autentifikasiyanı qəbul edən proxy üçün:
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)
Adi HTTP təyinatı üçün bu başlıqlar yönləndirilmiş sorğu ilə birlikdə proxy-yə gedir. CONNECT istifadə edən HTTPS təyinatı üçün isə onlar hər şifrələnmiş sayt sorğusuna deyil, tunel quruluşuna aiddir.
Adi headers arqumenti təyinat sorğusunun başlıqlarını təsvir edir. Bu proxy autentifikasiyası başqa alıcıya aiddir. Proxy hesabını oraya qoymaq əvvəlki CONNECT mübadiləsini konfiqurasiya etməklə eyni deyil.
make_headers Basic başlıq dəyərini qurur. O, NTLM üzrə danışıq aparmır, dəstəklənən sxemi avtomatik seçmir və proxy-nin həmin hesabı qəbul etdiyini sübut etmir.
TLS dinləyicisi olan proxy ayrıca proxy TLS konteksti əlavə edir. Yuxarıdakı http:// son nöqtəsi qəsdən HTTPS təyinatını tunel vasitəsilə daşıyan adi HTTP dinləyicisini təsvir edir.