Uredski proxy traži jedan račun. Web-mjesto 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-mjesta 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 potreban kombinirani razred provjere.

407 označava izazov posrednika. 401 s web-mjesta označava izazov odredišta. Upotrijebite taj odgovor da odlučite kojem od dva konfigurirana računa treba pozornost.

Povezani članci