Python Requests: hyrje Basic të ndara për proxy dhe faqen e internetit
Dërgo hyrjen Basic të proxy-t përmes URL-së së tij dhe atë të faqes së destinacionit përmes argumentit auth në Requests.
Proxy i zyrës kërkon një llogari. Faqja pas tij kërkon një tjetër. Requests ka hyrje të ndara për ato dy hyrje Basic: kredencialet në URL-në e proxy-t dhe argumenti auth i kërkesës.
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()
Katër variablat e llogarisë vijnë nga konfigurimi i kredencialeve të aplikacionit. Kodimi i veçantë i emrit të përdoruesit dhe fjalëkalimit të proxy-t ruan karaktere si shenja at pa i kthyer në ndarës URL.
Çelësi https në fjalor zgjedh këtë rrugë për një destinacion HTTPS. Vlera e tij vazhdon të fillojë me http:// sepse ky është protokolli që përdoret për të arritur këtë proxy shembull.
Për atë kërkesë HTTPS, hyrja e proxy-t i përket shkëmbimit CONNECT. Hyrja e faqes i përket kërkesës së mëvonshme përmes tunelit të vendosur. Lënia e adapterit të nxjerrë autorizimin e proxy-t nga URL-ja e vet e mban atë në hapin përkatës; për këtë rast Basic nuk nevojitet një klasë autentikimi e kombinuar.
Një 407 tregon sfidën e ndërmjetësit. Një 401 nga faqja tregon sfidën e destinacionit. Përdore atë përgjigje për të vendosur cila nga dy llogaritë e konfiguruara ka nevojë për vëmendje.