Kiran install_opener() sau biyu ba ya ƙara opener na biyu ga na farko. Yana maye gurbin opener na tsoho na module ɗin. Idan abu ɗaya ya san proxy ɗin kuma wani ya san shiga gidan yanar gizo, gina opener ɗaya mai ɗauke da handlers ɗin da ake buƙata.

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 ɗin da wurin da za a je misalai ne. Don sabis na jama'a da za a iya samu ta hanyar proxy na HTTP na jama'a, jerin proxy na HTTP yana ba da endpoints masu yuwuwa don handler ɗin hanya. Wannan opener yana tura buƙatar HTTPS ta hanyar proxy ɗin HTTP kuma yana magance kalubalen Basic na wurin. Ba ya saita tabbatarwar proxy.

Idan proxy ɗin ma yana buƙatar shiga, zaɓi tsarin tabbatarwar proxy da aka goyi bayan daban. 407 a lokacin CONNECT yana faruwa kafin wurin ya iya fitar da nasa ƙalubalen. Ƙara bayanan shiga gidan yanar gizo zuwa manajan kalmar sirri ba zai iya biyan wancan musayar da ta gabata ba.

Kiran opener.open() kai tsaye yana riƙe saitin tare da aikin. Babu buƙatar canza tsoho na duk module ɗin sai dai idan aikace-aikacen yana so da gangan duk kiran sauƙi ya raba wannan opener.

Labarai masu alaƙa