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.

Povezani članci