Biroja starpniekserveris prasa vienu kontu. Vietne aiz tā prasa citu. Requests ir atsevišķas ievades šīm divām Basic pieteikšanās reizēm: akreditācijas dati starpniekservera URL un pieprasījuma auth arguments.

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

Četri konta mainīgie nāk no lietotnes akreditācijas datu konfigurācijas. Starpniekservera lietotājvārda un paroles kodēšana atsevišķi saglabā tādas rakstzīmes kā at zīmi, nepārvēršot tās URL atdalītājos.

Vārdnīcas atslēga https izvēlas šo ceļu HTTPS galamērķim. Tās vērtība joprojām sākas ar http://, jo tas ir protokols, ar kuru sasniedz šo piemēra starpniekserveri.

Šajā HTTPS pieprasījumā starpniekservera pieteikšanās pieder CONNECT apmaiņai. Vietnes pieteikšanās pieder vēlākajam pieprasījumam caur izveidoto tuneli. Kad adapteris starpniekservera autorizāciju atvasina no sava URL, tā paliek attiecīgajā lēcienā; šim Basic gadījumam nav vajadzīga apvienota autentifikācijas klase.

407 norāda starpnieka izaicinājumu. 401 no vietnes norāda galamērķa izaicinājumu. Izmantojiet šo atbildi, lai izlemtu, kuram no diviem konfigurētajiem kontiem nepieciešama uzmanība.

Saistītie raksti