Pípe install_opener() lẹ́ẹ̀mejì kò fi opener kejì kún ti àkọ́kọ́. Ó rọ́pò opener àìpé ti module. Bí ohun kan bá mọ proxy tí òmíràn sì mọ ìwọlé wẹ́ẹ̀bù, kọ́ opener kan tí ó ní àwọn handler tó yẹ.

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()

proxy àti ibi tí a ń lọ jẹ́ àpẹẹrẹ. Fún iṣẹ́ gbogbogbò tí a lè dé nípasẹ̀ HTTP proxy gbogbogbò, àkójọ proxy HTTP ń pèsè àwọn endpoint tó yẹ fún handler ìtọ́sọ́nà. Opener yìí ń darí ìbéèrè HTTPS nípasẹ̀ HTTP proxy ó sì ń bójú tó ìpèníjà Basic ti ibi tí a ń lọ. Kò ṣètò ìjẹ́rìí proxy.

Bí proxy pẹ̀lú bá nílò ìwọlé, yan ètò ìjẹ́rìí proxy tí a ṣe àtìlẹ́yìn fún lọ́tọ̀. 407 ní àkókò CONNECT ń ṣẹlẹ̀ kí ibi tí a ń lọ tó lè gbé ìpèníjà tirẹ̀ jáde. Fífi àwọn ẹ̀rí wẹ́ẹ̀bù kún olùdarí ọ̀rọ̀ìpamọ́ kò lè tẹ́ àgbàǹpadà ìṣáájú yẹn lọ́rùn.

Pípe opener.open() tààrà ń pa ìṣètò mọ́ pẹ̀lú iṣẹ́. Kò pọn dandan láti yí àìpé module kíkún padà àyàfi bí ohun èlò bá fẹ́ ní ìmọ̀ọ́mọ̀ kí gbogbo ìpè ìrọ̀rùn pín opener yìí.

Àwọn àpilẹ̀kọ tó jọra