Kontori puhverserver küsib ühte kontot. Selle taga olev veebisait küsib teist. Requestsil on nende kahe Basic-sisselogimise jaoks eraldi sisendid: volitused puhverserveri URL-is ja päringu auth-argument.

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()

Neli konto muutujat pärinevad rakenduse volituste konfiguratsioonist. Puhverserveri kasutajanime ja parooli eraldi kodeerimine säilitab sellised märgid nagu at-märk, muutmata neid URL-i eraldajateks.

https võtmesõna sõnastikus valib selle tee HTTPS-sihtkoha jaoks. Selle väärtus algab endiselt http://-ga, sest see on protokoll, millega selle näidispuhverserverini jõutakse.

Selle HTTPS-päringu puhul kuulub puhverserveri sisselogimine CONNECT-vahetuse juurde. Veebisaidi sisselogimine kuulub hilisema päringu juurde loodud tunnelis. Kui adapter tuletab puhverserveri volituse oma URL-ist, jääb see asjakohasesse hüppesse; selle Basic-juhtumi jaoks pole kombineeritud autentimisklassi vaja.

407 tähistab vahendaja väljakutset. Veebisaidilt tulev 401 tähistab sihtkoha väljakutset. Kasuta seda vastust, et otsustada, milline kahest seadistatud kontost vajab tähelepanu.

Seotud artiklid