Python urllib: awtentikazzjoni Basic tal-proxy għal talbiet HTTP
Ibni opener urllib espliċitu għal sfida Basic minn proxy HTTP, u odden dan l-iskambju HTTP ordinarju mill-awtentikazzjoni HTTPS CONNECT.
Għal sfida Basic minn proxy HTTP, uża ProxyBasicAuthHandler. Dan l-eżempju HTTP ordinarju jżomm ir-rotta u l-kont f'opener wieħed:
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)Uża l-punt tat-tmiem veru u l-kont li jipprovdi l-operatur. Il-handler juża l-maniġer tal-passwords għas-sfida tal-proxy; qabbel l-URI u r-realm tal-proxy maħsubin. L-awtentikazzjoni Basic fid-destinazzjoni tuża handler ieħor.
Li ssejjaħ l-opener direttament iżomm dan is-setup lokali. L-URL tat-talba jibqa' s-sit, mhux l-intermedjarju. Dan il-perkors HTTP fil-beraħ ma jinkodifx skambju Basic.
Tiddeduċix minn dan l-eżempju li hemm appoġġ għal tunnel HTTPS. 407 waqt CONNECT jiġri fis-setup, qabel risposta ordinarja mid-destinazzjoni; l-integrazzjoni magħżula trid timmaniġġja l-awtentikazzjoni hemmhekk. Li tbiddel il-handler tal-login tas-sit ma jistax isewwi dik is-sfida preċedenti.
L-URLs tal-proxy li jġorru kredenzjali huma format ieħor li jidher f'eżempji aktar qodma. Jekk jintużaw, ikkodifika sew id-delimitaturi tal-URL u żomm l-URL li jġorr is-sigriet barra mil-log.