Python urllib: ukuqinisekisa kwe-Basic kwe-proxy kwezicelo ze-HTTP
Yakha i-urllib opener ecacile yesinseko se-Basic esivela ku-HTTP proxy, futhi uhlukanise lokhu kushintshana kwe-HTTP okuvamile nokuqinisekisa kwe-HTTPS CONNECT.
Ngesinseko se-Basic esivela ku-HTTP proxy, sebenzisa ProxyBasicAuthHandler. Lesi sibonelo se-HTTP esivamile sigcina umzila ne-akhawunti ku-opener eyodwa:
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)Sebenzisa indawo yokugcina yangempela kanye ne-akhawunti enikezwa umphathi. Isiphathi sisebenzisa umphathi wamagama ayimfihlo kusinseko se-proxy; fanisa i-URI ne-realm ye-proxy okuhlosiwe. Ukuqinisekisa kwe-Basic endaweni okuyiwa kuyo kusebenzisa esinye isiphathi.
Ukushaya i-opener ngqo kugcina lokhu kulungiselelwa kwasendaweni. I-URL yesicelo ihlala iyisizindalwazi, hhayi umxhumanisi. Lo mzila we-HTTP osobala awubethelisi ukushintshana kwe-Basic.
Ungaqageli ukusekelwa komhubhe we-HTTPS kulesi sibonelo. 407 ngesikhathi se-CONNECT kwenzeka ekusethweni, ngaphambi kwempendulo evamile yendawo okuyiwa kuyo; ukuhlanganiswa okukhethiwe kumele kusingathe ukuqinisekisa lapho. Ukushintsha isiphathi sokungena sesizindalwazi akukwazi ukulungisa leso sinseko sangaphambili.
Ama-URL e-proxy athwala izinkomba zokuqinisekisa angenye ifomethi etholakala ezibonelweni ezindala. Uma esetshenziswa, faka ngendlela efanele izihlukanisi ze-URL futhi gcina i-URL equkethe imfihlo ngaphandle kwamarekhodi.