Python Requests: apartaj Basic-ensalutoj por prokura servilo kaj retejo
Sendu la Basic-ensaluton de la prokura servilo per ĝia URL kaj tiun de la celloko per la argumento auth de Requests.
La oficeja prokura servilo postulas unun konton. La retejo malantaŭ ĝi postulas alian. Requests havas apartajn enigojn por tiuj du Basic-ensalutoj: identigiloj en la URL de la prokura servilo kaj la argumento auth de la peto.
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()
La kvar kontaj variabloj venas el la agordo de identigiloj de la aplikaĵo. Kodi aparte la uzantnomon kaj pasvorton de la prokura servilo konservas signojn kiel at sen igi ilin URL-apartigiloj.
La ŝlosilo https en la vortaro elektas tiun vojon por HTTPS-celo. Ĝia valoro ankoraŭ komenciĝas per http://, ĉar tiu estas la protokolo uzata por atingi ĉi tiun specimenan prokurilon.
Por tiu HTTPS-peto, la ensaluto de la prokura servilo apartenas al la interŝanĝo CONNECT. La ensaluto de la retejo apartenas al la posta peto tra la starigita tunelo. Lasante la adaptilon derivi la prokuran rajtigon el ĝia propra URL, ĝi restas ĉe la koncerna salto; por ĉi tiu Basic-kazo ne necesas kombinita aŭtentiga klaso.
407 indikas la defion de la peranto. 401 de la retejo indikas la defion de la celloko. Uzu tiun respondon por decidi, kiun el la du agorditaj kontoj bezonas atenton.