from urllib.request import ProxyHandler, build_opener

def make_proxy_opener(proxy_uri):
    return build_opener(ProxyHandler({
        "http": proxy_uri,
        "https": proxy_uri,
    }))

opener = make_proxy_opener("http://proxy.example.net:8080")
# Use opener.open(destination, timeout=10) for this route.

Deitu opener honen open metodoari bide bat egiaztapenarena denean. Adibideko HTTP amaierako puntua zure zerbitzutik edo egiaztapen publikoetarako HTTP proxy zerrendatik etor daiteke. Zatiak jabetza erakusten du; ez ditu autentifikazio edo osasun politika osoa definitzen. Mantendu kontuaren berariazko edozein handler helburuko bezero horri lotuta.

urllib.request.install_opener() geroagoko module mailako urlopen() deiek erabiltzen duten prozesu osoko lehenetsia aldatzen du. Beraz, proxyen bidez ibiltzen den egiaztatzaile batek erlaziorik gabeko eskaerak bere azken amaierako puntua erabiliz utz ditzake. Behin-behinean instalatzeak eta garbiketan berrezartzeak oraindik baimendu egiten die aldi bereko eskaerei aldaketa partekatuan zehar exekutatzen.

socket.setdefaulttimeout() era berean aldatzen ditu geroago sortutako socketen lehenetsiak. Erabili eragiketa mailako denbora-muga egiaztapenak bakarrik jaso behar duenean.

Itxi egiaztapenaren erantzunak eta mantendu emaitzak zehatzak: HTTP errore erantzun bat ez da automatikoki proxy entzule hil bat. urllib egiaztapen sinkronoa zerbitzu asinkrono batean erabiltzen bada, eraman blokeatzen duen lana langile egokira; exekuzio erabaki horrek ez du opener-en aldaketa globala isolatuta uzten.

Egiaztapen batek bere behaketa itzuli behar du beste sare politika bat atzean utzi gabe. Bere bezero objektuak eta eragiketa mugatuak muga hori esplizitu egiten dute.

Erlazionatutako artikuluak