Python Requests: одвојене Basic пријаве за прокси и веб-сајт
Пошаљите Basic пријаву проксија кроз његов URL, а Basic пријаву одредишне странице кроз auth аргумент у Requests.
Канцеларијски прокси тражи један налог. Сајт иза њега тражи други. Requests има одвојене улазе за те две Basic пријаве: податке за пријаву у URL-у проксија и auth аргумент захтева.
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()
Четири променљиве налога долазе из конфигурације података за пријаву апликације. Одвојено кодирање корисничког имена и лозинке проксија чува знакове попут знака at без претварања у раздвајаче URL-а.
Кључ https у речнику бира ову путању за HTTPS одредиште. Његова вредност и даље почиње са http:// јер је то протокол којим се стиже до овог примера проксија.
За тај HTTPS захтев пријава проксија припада CONNECT размени. Пријава сајта припада каснијем захтеву кроз успостављени тунел. Када адаптер изводи ауторизацију проксија из сопственог URL-а, она остаје на одговарајућем скоку; за овај Basic случај није потребна комбинована класа провере.
407 означава изазов посредника. 401 са сајта означава изазов одредишта. Користите тај одговор да одлучите ком од два конфигурисана налога треба пажња.