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.

Artikli relatati