Benotzt fir eng kleng urllib3-Proxy-Diagnos ProxyManager mat deaktivéierten Nei-Versich. Dat mellt den éischte Versuch, amplaz méi laang en Entrée ze widderhuelen, deen net méi funktionéiert. An engem vun uv geréierte Projet:

uv add urllib3

Ersetzt den Dokumentatiounsendpunkt duerch en HTTP-Proxy vun Ärem Déngscht oder aus der Lëscht vun HTTP-Proxye a féiert d’Ufro iwwer dee Manager aus:

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

Liest fir d’éischt response.status a kontrolléiert duerno response.data. Dat sinn urllib3 seng Felder; d’Requests-Felder status_code an text sinn keen Ersatz. Eng Ofleenung vun der Websäit kann iwwer e funktionéierende Proxy kommen. Eng Ausnam virun enger Äntwert weist dogéint, datt d’Ufro net ofgeschloss gouf.

retries=False ass eng Diagnosentscheedung, keng Nei-Versich-Politik fir de Produktivbetrib. Déi 5 Sekonne fir d’Verbindung an 10 Sekonne fir d’Liesen limitéieren hir eege Phasen; si ginn keng garantéiert Gesamtfrist vu 15 Sekonnen. DNS an de Fortschrëtt vun der Äntwert kënnen d’Gesamtwaardezäit beaflossen.

D’Beispill luet den Inhalt vir a läscht um Enn d’Verbindungspoole vum Manager. Haalt bei widderholl Ufroen iwwer dee selwechten Endpunkt de Manager bis zum Schluss vun der Aarbecht, fir d’Verbindungen nees ze benotzen. De Wiessel op preload_content=False ännert de Liewenszyklus: den Opruffer muss déi gestreamt Äntwert liesen a fräiginn.

Wielt de Manager passend zum Listener. En normale PoolManager gëtt net proxybewosst, well eng URL anzwousch anescht gespäichert ass; SOCKS benotzt urllib3.contrib.socks.SOCKSProxyManager a seng optional Ofhängegkeeten. De Code uewen hëlt den HTTP-ProxyManager-Wee.

Ähnlech Artikelen