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'ди журналдардан сырткары кармаңыз.

Тектеш макалалар