Forðist globalar urllib-opener-broytingar í proxy-kannarum
Halt urllib-proxy-kanningar í egnum opener sínum í staðin fyri at skifta út routing- og tíðarmark fyri alt prossesið.
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.Kallaðu egna open-mátan hjá hesum opener, tá ið ein leið hoyrir til kanningina. HTTP-endapunktið í døminum kann koma frá tænastuni hjá tær ella frá HTTP-proxy-listanum til almennar kanningar. Brotið vísir ogn; tað skilgreinir ikki fullu autentiseringar- ella heilsupolitikkina. Halt onkrar kontospecifikkar handlers knýttar at tí ætlaða klientinum.
urllib.request.install_opener() broytir tað globala prosses-sjálvgávuna, sum seinni urlopen()-kall á modulstigi brúka. Ein kannari, sum fer gjøgnum proxys, kann tí lata óviðkomandi fyrispurningar brúka seinasta endapunktið hjá sær. At seta fyribils inn og endurheimta í ruddingini loyvir framvegis samtíðis fyrispurningum at koyra meðan á felags broytingini stendur.
socket.setdefaulttimeout() broytir somuleiðis sjálvgávurnar fyri sockets, sum verða skapt seinni. Brúka tíðarmarkið á handlingarstigi, tá ið bert kanningin skal fáa tað.
Lat kanningar-svar aftur og halt úrslitini nágreinilig: eitt HTTP-feilsvar er ikki beinleiðis ein deyður proxy-lyttari. Um ein samstundis urllib-kanning verður brúkt í eini asynkronari tænastu, flyt blokkerandi arbeiði til ein hóskandi arbeiðara; tann avgerðin um útførslu ger ikki globalu opener-broytingina isoleraða.
Ein kanning eigur at lata sína eftirtekt aftur uttan at lata aðra netpolitikk liggja eftir. Eiginn klientur og avmarkað handling gera tað markið greitt.