HTTP proxy Basic iššūkiui naudokite ProxyBasicAuthHandler. Šis įprastas HTTP pavyzdys laiko maršrutą ir paskyrą viename 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)

Naudokite tikrą galinį tašką ir operatoriaus suteiktą paskyrą. Apdorotuvas naudoja slaptažodžių tvarkyklę proxy iššūkiui; suderinkite numatytą proxy URI ir realm. Paskirties Basic autentifikavimas naudoja kitą apdorotuvą.

Tiesioginis opener iškvietimas palieka šią sąranką vietinę. Užklausos URL lieka svetainė, o ne tarpininkas. Šis atviras HTTP maršrutas neužšifruoja Basic mainų.

Nedarome išvados apie HTTPS tunelio palaikymą iš šio pavyzdžio. 407 per CONNECT įvyksta nustatant, prieš įprastą paskirties atsakymą; pasirinkta integracija turi ten apdoroti autentifikavimą. Svetainės prisijungimo apdorotuvo pakeitimas negali pataisyti to ankstesnio iššūkio.

Proxy URL su kredencialais yra kitas formatas, sutinkamas senesniuose pavyzdžiuose. Jei naudojate, tinkamai koduokite URL skirtukus ir laikykite gautą slaptą URL už žurnalų ribų.

Susiję straipsniai