HTTP starpniekservera Basic izaicinājumam izmantojiet ProxyBasicAuthHandler. Šis parastais HTTP piemērs tur maršrutu un kontu vienā 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)

Izmantojiet īsto galapunktu un operatora nodrošināto kontu. Apstrādātājs izmanto paroļu pārvaldnieku starpniekservera izaicinājumam; saskaņojiet paredzēto starpniekservera URI un realm. Galamērķa Basic autentifikācija izmanto citu apstrādātāju.

Tieša opener izsaukšana šo iestatījumu atstāj lokālu. Pieprasījuma URL paliek vietne, nevis starpnieks. Šis atklātais HTTP maršruts nešifrē Basic apmaiņu.

Neizdariet secinājumu par HTTPS tuneļa atbalstu no šī piemēra. 407 CONNECT laikā notiek iestatīšanas laikā, pirms parastas galamērķa atbildes; izvēlētajai integrācijai tur jāapstrādā autentifikācija. Vietnes pieteikšanās apstrādātāja maiņa nevar salabot to agrāko izaicinājumu.

Starpniekservera URL ar akreditācijas datiem ir cits formāts, kas sastopams vecākos piemēros. Ja tos izmanto, pareizi kodējiet URL atdalītājus un turiet iegūto slepeno URL ārpus žurnāliem.

Saistītie raksti