Python urllib: ìjẹ́rìí Basic proxy fún àwọn ìbéèrè HTTP
Kọ́ urllib opener tí ó ṣe kedere fún ìpèníjà Basic láti HTTP proxy, kí o sì ya ìpààrọ̀ HTTP déédé yìí sọ́tọ̀ kúrò nínú ìjẹ́rìí HTTPS CONNECT.
Fún ìpèníjà Basic láti HTTP proxy, lo ProxyBasicAuthHandler. Àpẹẹrẹ HTTP déédé yìí tọ́jú ọ̀nà àti àkọsílẹ̀ nínú opener kan:
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)Lo ibi ìparí gidi àti àkọsílẹ̀ tí olùṣiṣẹ́ pèsè. Olùṣàkóso ń lo olùṣàkóso ọ̀rọ̀ ìpamọ́ fún ìpèníjà proxy; bá URI àti realm proxy tí a pète mu. Ìjẹ́rìí Basic ní ibi àfojúsùn ń lo olùṣàkóso mìíràn.
Pípè opener ní tààrà ń tọ́jú ìṣètò yìí ní àdúgbò. URL ìbéèrè ń wà ní ojú-òpó-ìtàkùn, kì í ṣe alárinà. Ọ̀nà HTTP tí ó ṣe kedere yìí kò ṣe ààbò ìpààrọ̀ Basic.
Má ṣe rò pé HTTPS tunnel ní àtìlẹ́yìn látara àpẹẹrẹ yìí. 407 nígbà CONNECT ń ṣẹlẹ̀ nígbà ìṣètò, ṣáájú ìdáhùn déédé láti ibi àfojúsùn; àkópọ̀ tí a yàn gbọdọ̀ ṣàkóso ìjẹ́rìí níbẹ̀. Yíyí olùṣàkóso ìwọlé ojú-òpó-ìtàkùn padà kò lè tún ìpèníjà àtẹ̀yìnwá yẹn ṣe.
URL proxy tí ó gbé ẹ̀rí jẹ́ ọ̀nà mìíràn tí ó wà nínú àpẹẹrẹ àtijọ́. Bí a bá lò wọ́n, ṣe àmì ìyàsọ́tọ̀ URL lẹ́kọ̀ọ́ gbáà, kí o sì pa URL tí ó ní àṣírí mọ́ kúrò nínú àkọsílẹ̀.