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.

Kutsuge selle openeri enda open meetodit, kui marsruut kuulub kontrolli juurde. Näite HTTP lõpp-punkt võib pärineda teie teenusest või avalike kontrollide jaoks mõeldud HTTP puhverserverite loendist. Katkend näitab omandit; see ei määratle täielikku autentimis- ega tervisepoliitikat. Hoidke kõik kontospetsiifilised käsitlejad selle kavandatud kliendi küljes.

urllib.request.install_opener() muudab protsessipõhist vaikeväärtust, mida kasutavad hilisemad moodulitasandi urlopen() kutsed. Puhverservereid läbiv kontrollija võib seega jätta seotud välistele päringutele oma viimase lõpp-punkti. Ajutine paigaldamine ja puhastamisel taastamine lubab siiski paralleelsetel päringutel jagatud muudatuse ajal joosta.

socket.setdefaulttimeout() muudab sarnaselt hiljem loodavate socketite vaikeväärtusi. Kasutage toimingutasandi ajapiirangut, kui ainult kontroll peaks selle saama.

Sulgege kontrolli vastused ja hoidke tulemused konkreetsed: HTTP-vea vastus ei ole automaatselt surnud puhverserveri kuulaja. Kui sünkroonset urllib kontrolli kasutatakse asünkroonses teenuses, viige blokeeriv töö sobivasse töötajasse; see täitmisotsus ei muuda ülemaailmset openeri muudatust isoleerituks.

Kontroll peaks tagastama oma vaatluse, jätmata teist võrgupoliitikat maha. Selle oma kliendiobjekt ja piiratud toiming teevad selle piiri selgeks.

Seotud artiklid