Anna ProxyHandler-ile tühi vastendus, kui üks urllib-opener peab ühenduma otse:

from urllib.request import ProxyHandler, build_opener

direct = build_opener(ProxyHandler({}))

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

Tühi sõnastik ei määra ühtegi puhverserveri marsruuti. Vastenduse ärajätmisel tuvastab käitleja puhverserverid hoopis keskkonna ja platvormi seadetest. Need kaks loomise viisi väljendavad eri põhimõtteid.

Näide kasutab Pythoni standardteeki ja säilitab tavapärase HTTPS-i kontrolli. with-plokk sulgeb vastuse ka siis, kui plokist lahkutakse erindi tõttu.

Otsepäringud ja puhverserveriga päringud samas rakenduses

Kaks opener’it võivad kanda eri põhimõtteid, ilma et peaksid kutsete vahel keskkonnamuutujaid muutma:

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)

Asenda tagasisideaadress oma HTTP-puhverserveriga või vali puhverserveri kaudu võrdlemiseks kandidaat HTTP-puhverserverite loendist. See võib kanda HTTPS-sihtkoha ühendust CONNECT-i kaudu, kui teenus seda lubab. Kuulava teenuse protokoll ja autentimise tugi peavad käitlejaga sobima.

Jäta vaikimisi opener puutumata

Kutsu direct.open või proxied.open välja selle objekti kaudu, mis vastutab marsruudi eest. install_opener muudab kogu protsessi vaikimisi opener’it, mida kasutavad urllib-i mugavusfunktsioonid; seda kasutav teek võib seetõttu mõjutada asjassepuutumatut koodi. Ülaltoodud eraldatud opener seda ei vaja.

Argument timeout on toimingu seadistus, mitte iga ülekande kogu tegeliku kestuse tähtaeg. Loe vaid tööks vajalikke andmeid ja kasuta kõrgema taseme tähtaega, kui töö üldine ajaeelarve on range.

Need opener-objektid ei muuda teise teegi klienti, olemasolevat protsessi ega brauseri puhverserveri seadeid.

Seotud artiklid