Għal dijanjosi żgħira ta’ proxy b’urllib3, uża ProxyManager bit-tentattivi mill-ġdid mitfija. Dan jirrapporta l-ewwel tentattiv minflok iqatta’ aktar ħin jerġa’ jipprova entrata li ma għadhiex taħdem. Fi proġett ġestit minn uv:

uv add urllib3

Ibdel il-punt tad-dokumentazzjoni bi proxy HTTP mis-servizz tiegħek jew mil-lista ta’ proxies HTTP u mexxi t-talba permezz ta’ dak il-maniġer:

import urllib3

proxy = urllib3.ProxyManager(
    "http://203.0.113.10:8080",
    timeout=urllib3.Timeout(connect=5, read=10),
    retries=False,
)

try:
    response = proxy.request("GET", "https://example.com/")
    print(response.status)
    print(response.data.decode("utf-8", errors="replace")[:200])
finally:
    proxy.clear()

Aqra response.status l-ewwel, imbagħad spezzjona response.data. Dawn huma l-oqsma ta’ urllib3; status_code u text tal-istil Requests mhumiex sostituti. Rifjut tas-sit jista’ jasal permezz ta’ proxy li jaħdem. Eċċezzjoni qabel tweġiba tindika minflok li t-talba ma tlestietx.

retries=False hija għażla dijanjostika, mhux politika ta’ tentattivi għall-produzzjoni. Is-settings ta’ 5 sekondi għall-konnessjoni u 10 sekondi għall-qari jillimitaw il-fażijiet tagħhom; ma jammontawx għal skadenza totali garantita ta’ 15-il sekonda. Id-DNS u l-progress tat-tweġiba jistgħu jaffettwaw l-istennija kollha.

L-eżempju jgħabbi l-korp minn qabel u jnaddaf il-pools tal-maniġer fl-aħħar. Għal talbiet ripetuti mill-istess punt, żomm il-maniġer sa tmiem ix-xogħol biex il-konnessjonijiet jerġgħu jintużaw. Il-bidla għal preload_content=False tbiddel iċ-ċiklu: min isejjaħ irid jaqra u jirrilaxxa t-tweġiba streaming.

Agħżel il-maniġer li jaqbel mas-servizz li jisma’. PoolManager normali ma jsirx konxju tal-proxy għax URL maħżun xi mkien ieħor; SOCKS juża urllib3.contrib.socks.SOCKSProxyManager u d-dipendenzi mhux obbligatorji tiegħu. Il-kodiċi ta’ hawn fuq isegwi t-triq HTTP ProxyManager.

Artikli relatati