Nododiet ProxyHandler tukšu kartējumu, ja vienam urllib opener jāsavienojas tieši:

from urllib.request import ProxyHandler, build_opener

direct = build_opener(ProxyHandler({}))

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

Tukša vārdnīca nenorāda starpniekserveru maršrutus. Ja kartējumu izlaiž, apstrādātājs atrod starpniekserverus vidē un platformas iestatījumos. Šie divi izveides veidi izsaka atšķirīgas politikas.

Piemērs izmanto Python standarta bibliotēku un saglabā parasto HTTPS pārbaudi. with bloks aizver atbildi, arī tad, ja izņēmums izraisa iziešanu no bloka.

Tiešie pieprasījumi un pieprasījumi caur starpniekserveri vienā lietotnē

Divi opener objekti var īstenot abas politikas, nemainot vides mainīgos starp izsaukumiem:

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)

Aizstājiet atgriezeniskās cilpas adresi ar savu HTTP starpniekserveri vai izvēlieties kandidātu no HTTP starpniekserveru saraksta salīdzinājumam caur starpniekserveri. Tas var pārvadīt savienojumu ar HTTPS mērķi caur CONNECT, ja pakalpojums to atļauj. Klausītāja protokolam un autentifikācijas atbalstam jāatbilst apstrādātājam.

Atstājiet noklusējuma opener neskartu

Izsauciet direct.open vai proxied.open ar objektu, kurš atbild par maršrutu. install_opener maina visa procesa noklusējumu, ko izmanto urllib ērtību funkcijas; bibliotēka, kas to lieto, var ietekmēt nesaistītu kodu. Iepriekš minētajam izolētajam opener tas nav nepieciešams.

Arguments timeout ir darbības iestatījums, nevis katras pārsūtīšanas pilnā faktiskā laika termiņš. Lasiet tikai vajadzīgos datus un izmantojiet augstāka līmeņa termiņu, ja uzdevumam ir stingrs kopējais laika budžets.

Šie opener objekti nemaina citas bibliotēkas klientu, esošu procesu vai pārlūka starpniekservera iestatījumus.

Saistītie raksti