Python urllib: Basic-Proxy-Authentifikatioun fir HTTP-Ufroen
Baut en expliziten urllib-Opener fir eng Basic-Herausfuerderung vun engem HTTP-Proxy a ënnerscheet dësen normale HTTP-Austausch vun der HTTPS-CONNECT-Authentifikatioun.
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.