Fir eng eenzel asynchron Ufro duerch en HTTP-Proxy ouni Authentifizéierung, haalt d’Streck bei session.get(). Füügt aiohttp bei Bedarf dem Projet bäi:

uv add aiohttp

Ersetzt déi folgend Dokumentatiounsadress duerch Ären HTTP-Listener oder e Kandidat aus der Lëscht vun HTTP-Proxye. E muss CONNECT op d’HTTPS-Zil erlaben; e reng SOCKS-Endpunkt brauch e passende Connector amplaz vun dësem proxy-Argument.

import asyncio
import aiohttp

async def main():
    timeout = aiohttp.ClientTimeout(total=15, connect=5)
    async with aiohttp.ClientSession(
        timeout=timeout,
        trust_env=False,
    ) as session:
        async with session.get(
            "https://example.com/",
            proxy="http://203.0.113.10:8080",
        ) as response:
            print(response.status)
            print((await response.text())[:200])

asyncio.run(main())

D’Ufro weist hiren HTTP-Status an déi éischt 200 Zeeche vum Äntwerttext. En 403 oder 429 bleift hei eng préifbar Äntwert; rufft response.raise_for_status() op, wann Är App erfolleglos Statussen an Ausname verwandele soll. Déi asynchron Kontextmanager maachen d’Sessioun an d’Äntwert um Enn vun hire Bléck zou, och bei enger Ausnam.

De 15-Sekonnen-total-Budget deckt d’Ufrooperatioun of. De 5-Sekonnen-connect-Budget ëmfaasst d’Waarden op eng disponibel Poolverbindung, sou datt e beschäftegte Pool e virum Opmaache vun engem neie Socket opbrauche kann. Dësen Ënnerscheed ass wichteg beim Ausbau vum eenzelen Opruff op gläichzäiteg Kontrollen.

trust_env=False hält déi gewise Streck explizitt. aiohttp sicht standardméisseg net no Proxy-Ëmweltvariabelen; den Export vun enger an engem aneren Terminal konfiguréiert dësen Opruff net. Wielt trust_env=True nëmmen, wann déi geierft Prozessëmwelt déi gewënschte Routingpolitik ass.

Ähnlech Artikelen