Python urllib: ukuhlanganisa indlela ye-proxy ne-Basic Authentication yewebhusayithi
Hlanganisa indlela ye-urllib ne-Basic authentication yendawo eya kuyo ku-opener eyodwa ecacile ngaphandle kokushintsha i-global opener kabili.
Ukushaya install_opener() kabili akungezi i-opener yesibili kwelokuqala. Kushintsha i-module default opener. Uma into eyodwa yazi i-proxy kanti enye yazi ukungena kuwebhusayithi, yakha i-opener eyodwa enama-handlers adingekayo.
import os
from urllib.request import (ProxyHandler, HTTPBasicAuthHandler,
HTTPPasswordMgrWithDefaultRealm, build_opener)
passwords = HTTPPasswordMgrWithDefaultRealm()
passwords.add_password(None, 'https://example.com/private/',
os.environ['SITE_USER'], os.environ['SITE_PASSWORD'])
opener = build_opener(
ProxyHandler({'https': 'http://203.0.113.10:8080'}),
HTTPBasicAuthHandler(passwords),
)
with opener.open('https://example.com/private/report', timeout=10) as response:
body = response.read()I-proxy nendawo okuyiwa kuyo ziyizibonelo. Ngomsebenzi womphakathi ofinyeleleka nge-HTTP proxy yomphakathi, uhlu lwe-HTTP proxy lunikeza ama-endpoint angaba yikhandidethi we-handler yokuhambisa. Le opener ihambisa isicelo se-HTTPS nge-HTTP proxy futhi ibhekana nenselelo ye-Basic yendawo. Ayilungiseleli ukuqinisekiswa kwe-proxy.
Uma i-proxy nayo idinga ukungena, khetha ngokwehlukile isakhiwo sokuqinisekiswa kwe-proxy esisekelwayo. I-407 ngesikhathi se-CONNECT yenzeka ngaphambi kokuba indawo ikwazi ukukhipha inselelo yayo. Ukwengeza imininingwane yokungena yewebhusayithi kumphathi wamaphasiwedi akukwazi ukwanelisa lokho kushintshana kwangaphambili.
Ukushaya opener.open() ngqo kugcina ukulungiselelwa kanye nomsebenzi. Asikho isidingo sokushintsha i-default yonke ye-module ngaphandle uma uhlelo lufuna ngamabomu ukuthi zonke izingcingo ezilula zabelane ngale opener.