За малу urllib3 прокси дијагностику користите ProxyManager са искљученим поновним покушајима. Тако се пријављује први покушај уместо дужег понављања уноса који више не ради. У пројекту којим управља uv:

uv add urllib3

Замените документацијску крајњу тачку HTTP проксијем из своје услуге или листе HTTP проксија и пошаљите захтев кроз тај менаџер:

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()

Прво прочитајте response.status, па прегледајте response.data. То су urllib3 поља; status_code и text из Requests стила нису замене. Одбијање сајта може стићи кроз функционалан прокси. Изузетак пре одговора, насупрот томе, означава неуспех довршавања захтева.

retries=False је дијагностички избор, а не политика поновних покушаја у продукцији. Поставке повезивања од 5 и читања од 10 секунди ограничавају своје фазе; не сабирају се у гарантован укупан рок од 15 секунди. DNS и напредовање одговора могу утицати на укупно чекање.

Пример унапред учитава тело и на крају празни менаџерове скупове веза. За поновљене захтеве кроз исту крајњу тачку задржите менаџер до краја посла ради поновне употребе веза. Прелазак на preload_content=False мења животни циклус: позивалац мора прочитати и ослободити одговор у току.

Изаберите менаџер према услузи која слуша. Обични PoolManager не постаје прокси менаџер зато што је URL сачуван другде; SOCKS користи urllib3.contrib.socks.SOCKSProxyManager и његове опционе зависности. Горњи код прати HTTP ProxyManager пут.

Повезани чланци