Fir eng Basic-Herausfuerderung vun engem HTTP-Proxy benotzt ProxyBasicAuthHandler. Dëst normale HTTP-Beispill hält d'Route an de Kont an engem 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)

Benotzt den echte Endpunkt an de Kont, deen den Operateur stellt. Den Handler benotzt de Passwuertmanager fir d'Herausfuerderung vum Proxy; passt déi virgesinn Proxy-URI an de Realm un. Basic-Authentifikatioun um Zil benotzt en aneren Handler.

Den Opener direkt opruffen hält dës Konfiguratioun lokal. D'URL vun der Ufro bleift d'Websäit, net de Mëttler. Dësen onverschlësselte HTTP-Wee verschlësselt keen Basic-Austausch.

Leet keng HTTPS-Tunnelënnnerstëtzung aus dësem Beispill of. En 407 bei CONNECT geschitt beim Opbau, virun enger normaler Äntwert vum Zil; déi gewielten Integratioun muss d'Authentifikatioun do behandelen. D'Login-Handler vun der Websäit z'änneren kann déi fréier Herausfuerderung net reparéieren.

Proxy-URLen mat Umeldungsdaten sinn en anert Format, dat a méi ale Beispiller optrëtt. Wann se benotzt ginn, kodéiert d'URL-Trenner richteg a haalt déi entstane geheim URL aus de Protokoller.

Ähnlech Artikelen