Канцелариското прокси бара една сметка. Страницата зад него бара друга. 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 од страницата го означува предизвикот на целта. Користете го тој одговор за да одлучите која од двете конфигурирани сметки бара внимание.

Поврзани статии