Għaddi mapping vojt lil ProxyHandler meta opener wieħed ta’ urllib għandu jikkonnettja direttament:

from urllib.request import ProxyHandler, build_opener

direct = build_opener(ProxyHandler({}))

with direct.open("https://example.com/", timeout=10) as response:
    print(response.status)

Id-dizzjunarju vojt ma jipprovdi ebda rotta ta’ proxy. Jekk tħalli barra l-mapping, il-handler minflok jiskopri proxies mill-ambjent u mis-settings tal-pjattaforma. Dawn iż-żewġ kostruzzjonijiet jesprimu politiki differenti.

L-eżempju juża l-librerija standard ta’ Python u jżomm il-verifika HTTPS normali. Il-blokka with tagħlaq ir-rispons, anki meta eċċezzjoni twassal biex l-eżekuzzjoni toħroġ mill-blokka.

Talbiet diretti u permezz ta’ proxy fl-istess applikazzjoni

Żewġ openers jistgħu jġorru ż-żewġ politiki mingħajr ma jinbidlu l-varjabbli tal-ambjent bejn sejħiet:

from urllib.request import ProxyHandler, build_opener

direct = build_opener(ProxyHandler({}))
proxied = build_opener(ProxyHandler({
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}))

with proxied.open("https://example.com/", timeout=10) as response:
    print(response.status)

Ibdel l-indirizz loopback bil-proxy HTTP tiegħek, jew agħżel kandidat mil-lista ta’ proxies HTTP għat-tqabbil permezz ta’ proxy. Jista’ jġorr il-konnessjoni lejn id-destinazzjoni HTTPS permezz ta’ CONNECT meta s-servizz jippermetti. Il-protokoll u l-appoġġ għall-awtentikazzjoni tal-listener iridu jaqblu mal-handler.

Tibdilx l-opener predefinit

Sejjaħ direct.open jew proxied.open permezz tal-oġġett responsabbli għar-rotta. install_opener ibiddel il-valur predefinit tal-proċess kollu li jużaw il-funzjonijiet ta’ konvenjenza ta’ urllib; għalhekk librerija li tużah tista’ taffettwa kodiċi mhux relatat. Mhuwiex meħtieġ għall-opener iżolat hawn fuq.

L-argument timeout huwa setting għal operazzjoni, mhux skadenza ta’ ħin reali għat-trasferiment kollu. Aqra biss id-data meħtieġa u uża skadenza f’livell ogħla jekk ix-xogħol għandu baġit ta’ ħin totali strett.

Dawn l-oġġetti opener ma jbiddlux il-klijent ta’ librerija oħra, proċess eżistenti jew is-settings tal-proxy ta’ browser.

Artikli relatati