HTTP проксиден келген Basic шақыруы үшін ProxyBasicAuthHandler қолданыңыз. Бұл қарапайым HTTP мысалы маршрут пен тіркелгіні бір opener ішінде ұстайды:

import os
from urllib.request import (
    ProxyHandler, ProxyBasicAuthHandler,
    HTTPPasswordMgrWithDefaultRealm, build_opener,
)

proxy_url = 'http://proxy.example:8080'
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(
    None, proxy_url,
    os.environ['PROXY_USER'], os.environ['PROXY_PASSWORD'],
)
opener = build_opener(
    ProxyHandler({'http': proxy_url}),
    ProxyBasicAuthHandler(passwords),
)
with opener.open('http://example.com/', timeout=10) as response:
    print(response.status)

Нақты соңғы нүктені және оператор берген тіркелгіні қолданыңыз. Бұл өңдеуші прокси шақыруы үшін құпиясөз менеджерін пайдаланады; күтілетін прокси URI мен realm-ды сәйкестендіріңіз. Межедегі Basic аутентификациясы басқа өңдеушіні пайдаланады.

opener-ді тікелей шақыру бұл конфигурацияны жергілікті күйінде ұстайды. Сұраудың URL-і делдал емес, сайт болып қалады. Бұл ашық HTTP маршруты Basic алмасуын шифрламайды.

Бұл мысалдан HTTPS туннеліне қолдау бар деп қорытынды жасамаңыз. CONNECT кезіндегі 407 орнату кезінде, меженің қарапайым жауабынан бұрын пайда болады; таңдалған интеграция аутентификацияны сол жерде өңдеуі керек. Сайттың кіру өңдеушісін өзгерту сол бұрынғы шақыруды түзете алмайды.

Тіркелгі деректері бар прокси URL-дері ескі мысалдарда кездесетін басқа формат. Егер қолдансаңыз, URL бөлгіштерін дұрыс кодтап, пайда болған құпиясы бар URL-ді журналдардан тыс ұстаңыз.

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