Python Requests: odvojene Basic prijave za proxy i web stranicu
Pošaljite Basic prijavu proxyja kroz njegov URL, a Basic prijavu odredišne stranice kroz auth argument u Requests.
Uredski proxy traži jedan račun. Web stranica iza njega traži drugi. Requests ima odvojene ulaze za te dvije Basic prijave: podatke za prijavu u URL-u proxyja i auth argument zahtjeva.
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()
Četiri varijable računa dolaze iz konfiguracije podataka za prijavu aplikacije. Odvojeno kodiranje korisničkog imena i lozinke proxyja čuva znakove poput znaka at bez pretvaranja u razdjelnike URL-a.
Ključ https u rječniku bira ovu rutu za HTTPS odredište. Njegova vrijednost i dalje počinje s http:// jer je to protokol kojim se dolazi do ovog primjera proxyja.
Za taj HTTPS zahtjev prijava proxyja pripada CONNECT razmjeni. Prijava web stranice pripada kasnijem zahtjevu kroz uspostavljeni tunel. Ako adapter izvodi proxy autorizaciju iz vlastitog URL-a, ona ostaje na odgovarajućem skoku; za ovaj Basic slučaj nije potrebna kombinirana klasa provjere.
407 označava izazov posrednika. 401 sa web stranice označava izazov odredišta. Upotrijebite taj odgovor da odlučite kojem od dva konfigurirana računa treba pažnja.