Python Requests: getrennt Basic-Logine fir Proxy a Websäit
Gëff de Basic-Login vum Proxy iwwer seng URL an de Basic-Login vun der Zilsäit iwwer d'auth-Argument vun Requests.
Den Office-Proxy verlaangt ee Kont. D'Websäit hannendrun verlaangt en aneren. Requests huet getrennt Agebe fir déi zwou Basic-Loginen: d'Zougangsdaten an der Proxy-URL an d'auth-Argument vun der Ufro.
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()
Déi véier Kontvariabele kommen aus der Konfiguratioun vun den Zougangsdaten vun der Applikatioun. De Benotzernumm an d'Passwuert vum Proxy getrennt kodéieren erhält Zeechen wéi d'at-Zeechen, ouni se an URL-Trennzeechen ëmzewandelen.
De Schlëssel https am Dictionnaire wielt dëse Wee fir en HTTPS-Zil. Säi Wäert fänkt nach ëmmer mat http:// un, well dat de Protokoll ass, mat deem dësen Beispill-Proxy erreecht gëtt.
Bei dëser HTTPS-Ufro gehéiert de Proxy-Login zum CONNECT-Austausch. De Websäit-Login gehéiert zu der spéiderer Ufro duerch den ageriichten Tunnel. Wann den Adapter d'Proxy-Autorisatioun aus senger eegener URL ofleitet, bleift se um betreffenden Hop; fir dëse Basic-Fall ass keng kombinéiert Authentifikatiounsklass néideg.
En 407 weist op d'Erausfuerderung vum Vermëttler. En 401 vun der Websäit weist op d'Erausfuerderung vum Zil. Benotz déi Äntwert, fir ze entscheeden, wéi ee vun den zwee konfiguréierte Konten Opmierksamkeet brauch.