Python Requests: proxy ve site için ayrı Basic girişleri
Proxy'nin Basic girişini kendi URL'siyle, hedef sitenin Basic girişini ise Requests'in auth argümanıyla iletin.
Ofis proxy'si bir hesap ister. Arkasındaki site başka bir hesap ister. Requests'in bu iki Basic girişi için ayrı girdileri vardır: proxy URL'sindeki kimlik bilgileri ve isteğin auth argümanı.
from urllib.parse import quote
import requests
proxy_url = (
f"http://{quote(proxy_user, safe='')}:"
f"{quote(proxy_password, safe='')}@proxy.example:8080"
)
response = requests.get(
"https://reports.example/private/",
proxies={"https": proxy_url},
auth=(site_user, site_password),
timeout=(5, 20),
)
response.raise_for_status()
Dört hesap değişkeni uygulamanın kimlik bilgisi yapılandırmasından gelir. Proxy kullanıcı adı ve parolasını ayrı ayrı kodlamak at işareti gibi karakterleri URL ayırıcısına dönüştürmeden korur.
Sözlükteki https anahtarı HTTPS hedefi için bu yolu seçer. Değeri hâlâ http:// ile başlar çünkü bu örnek proxy'ye ulaşmak için kullanılan protokol odur.
Bu HTTPS isteğinde proxy girişi CONNECT alışverişine aittir. Site girişi ise kurulan tünelden geçen sonraki isteğe aittir. Adaptörün proxy yetkilendirmesini kendi URL'sinden türetmesine izin vermek onu ilgili sıçramada tutar; bu Basic durumu için birleşik bir kimlik doğrulama sınıfına gerek yoktur.
407 aracının meydan okumasını gösterir. Siteden gelen 401 hedefin meydan okumasını gösterir. Yapılandırılmış iki hesaptan hangisinin ilgi gerektirdiğine karar vermek için o yanıtı kullanın.