Python Requests: aparte Basic-oanmeldingen foar proxy en website
Jou de Basic-oanmelding fan de proxy fia syn URL en dy fan 'e bestimming fia it auth-argument fan Requests.
De kantoarproxy freget om ien akkount. De website dêr efter freget om in oar. Requests hat aparte ynfierfjilden foar dy twa Basic-oanmeldings: bewiisgegevens yn 'e proxy-URL en it auth-argument fan 'e oanfraach.
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()
De fjouwer akkountfariabelen komme út 'e konfiguraasje fan 'e bewiisgegevens fan 'e applikaasje. Brukersnamme en wachtwurd fan 'e proxy apart kodearje bewarret tekens lykas it at-teken sûnder se yn URL-skieïngstekens te feroarjen.
De kaai https yn it wurdboek kiest dizze rûte foar in HTTPS-bestimming. De wearde begjint noch altyd mei http://, om't dat it protokol is dat brûkt wurdt om dizze foarbyldproxy te berikken.
Foar dy HTTPS-oanfraach heart de proxy-oanmelding by de CONNECT-útwikseling. De website-oanmelding heart by de lettere oanfraach troch de oanmakke tunnel. As de adapter de proxy-autorisaasje út syn eigen URL ôfliedt, bliuwt dy by de oanbelangjende hop; foar dit Basic-gefal is gjin kombinearre autentikaasjeklasse nedich.
In 407 wiist op 'e útdaging fan 'e tuskenpartij. In 401 fan 'e website wiist op 'e útdaging fan 'e bestimming. Brûk dat antwurd om te besluten hokker fan 'e twa konfigurearre akkounts oandacht nedich hat.