Кеңсе проксиі бір тіркелгі талап етеді. Оның артындағы сайт басқасын талап етеді. 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 мақсаттың шақыруын білдіреді. Конфигурацияланған екі тіркелгінің қайсысына назар аудару керегін шешу үшін сол жауапты пайдаланыңыз.

Қатысты мақалалар