Python urllib: baza prokura aŭtentigo por HTTP-petoj
Konstruu eksplicitan urllib-malfermilon por Basic-defio de HTTP-prokuro, kaj distingigu tiun ordinaran HTTP-interŝanĝon de HTTPS CONNECT-aŭtentigo.
Por Basic-defio de HTTP-prokuro uzu ProxyBasicAuthHandler. Ĉi tiu ordinara HTTP-ekzemplo tenas la itineron kaj la konton en unu malfermilo:
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)Uzu la realan finpunkton kaj la konton provizitan de la funkciigisto. La traktilo uzas la pasvortan administrilon por la defio de la prokuro; kongruigu la celitan prokuran URI kaj realm. Baza aŭtentigo ĉe la celo uzas alian traktilon.
Rekta voko de la malfermilo tenas ĉi tiun agordon loka. La petURL restas la retejo, ne la peranto. Ĉi tiu senĉifra HTTP-itinero ne ĉifras Basic-interŝanĝon.
Ne konkludu HTTPS-tunelan subtenon el ĉi tiu ekzemplo. 407 dum CONNECT okazas ĉe la agordo, antaŭ ordinara respondo de la celo; la elektita integriĝo devas pritrakti aŭtentigon tie. Ŝanĝi la ensalutan traktilon de la retejo ne povas ripari tiun pli fruan defion.
Prokuraj URL-oj kun legitimiloj estas alia formato trovata en pli malnovaj ekzemploj. Se uzataj, kodu la URL-apartigilojn ĝuste kaj tenu la rezultan sekretan URL-on ekster la protokoloj.