Ní chuireann glaoch install_opener() faoi dhó an dara opener leis an gcéad cheann. Cuireann sé opener réamhshocraithe an mhodúil in ionad. Má tá an proxy ar eolas ag rud amháin agus logáil isteach an tsuímh ghréasáin ag rud eile, tóg opener amháin ina bhfuil na handlers riachtanacha.

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

Is samplaí iad an proxy agus an ceann scríbe. Chun seirbhís phoiblí a bhféadfaí rochtain a fháil uirthi trí proxy HTTP poiblí, soláthraíonn an liosta proxy HTTP críochphointí iarrthacha don handler ródaithe. Ródálann an opener seo an iarratas HTTPS tríd an proxy HTTP agus láimhseálann sé dúshlán Basic an chinn scríbe. Ní chumraíonn sé fíordheimhniú proxy.

Má theastaíonn logáil isteach ón proxy freisin, roghnaigh socrú fíordheimhnithe proxy tacaithe ar leithligh. Tarlaíonn 407 ag am CONNECT sula féidir leis an gceann scríbe a dhúshlán féin a eisiúint. Ní féidir le dintiúirí an tsuímh a chur leis an mbainisteoir focal faire an malartú níos luaithe sin a shásamh.

Má ghlaoitear opener.open() go díreach, coimeádtar an chumraíocht leis an oibríocht. Ní gá an réamhshocrú ar fud an mhodúil a athrú mura bhfuil an feidhmchlár ag iarraidh go córasach go roinnfeadh gach glaoch áise an opener seo.

Ailt ghaolmhara