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.

Ruff d'eegen open-Methode vun dësem Opener op, wann eng Route zur Prüfung gehéiert. Den HTTP-Endpunkt vum Beispill kann aus Ärem Service oder aus der HTTP-Proxy-Lëscht fir ëffentlech Prüfunge kommen. D'Fragments illustréiert d'Eegentum; et definéiert net déi vollstänneg Authentifikatiouns- oder Gesondheetspolitik. Halt all kontospezifesch Handler un dee virgesinne Client ugeschloss.

urllib.request.install_opener() ännert de prozesswäiten Standard, deen déi méi spéit Modul-Niveau urlopen()-Opruff benotzen. En Iwwerpréifer, deen duerch Proxye geet, kann dowéinst onbezunn Ufroe mat sengem leschten Endpunkt loossen. Temporär installéieren an beim Botzen restauréieren erlaabt nach ëmmer gläichzäiteg Ufroe wärend der gedeelter Ännerung.

socket.setdefaulttimeout() ännert och d'Standarden fir Sockets, déi duerno erstallt ginn. Benotz den Timeout um Operatiounsniveau, wann nëmmen d'Prüfung en erhalen soll.

Schléiss d'Prüfungsäntwerten a hal d'Resultater spezifesch: eng HTTP-Feeleräntwert ass net automatesch en doudege Proxy-Lauschterer. Wann eng synchron urllib-Prüfung an engem asynchrone Service benotzt gëtt, réck blockéierend Aarbecht op ee passenden Worker; déi Ausféierungsentscheedung mécht d'global Opener-Ännerung net isoléiert.

Eng Prüfung soll hir Observatioun zréckginn, ouni eng aner Netzwierkpolitik ze loossen. Hire eegene Client-Objekt an déi begrenzt Operatioun maachen déi Grenz explizit.

Ähnlech Artikelen