Jeden požadavek aiohttp přes HTTP proxy
Pošlete požadavek aiohttp přes HTTP proxy bez ověřování, zkontrolujte stav a dokončete jej v explicitním asynchronním životním cyklu.
Pro jeden asynchronní požadavek přes HTTP proxy bez ověřování ponechte trasu u session.get(). Podle potřeby přidejte aiohttp do projektu:
uv add aiohttpDokumentační adresu níže nahraďte svým naslouchajícím HTTP bodem nebo kandidátem ze seznamu HTTP proxy. Musí povolovat CONNECT k cíli HTTPS; koncový bod podporující jen SOCKS potřebuje vhodný konektor místo tohoto argumentu proxy.
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())
Požadavek vypíše svůj stav HTTP a prvních 200 znaků textu odpovědi. Stav 403 nebo 429 zde zůstává odpovědí, kterou lze prohlédnout; volejte response.raise_for_status(), má-li aplikace převádět neúspěšné stavy na výjimky. Asynchronní správci kontextu zavřou relaci a odpověď po skončení bloků, i při výjimce.
Rozpočet total na 15 sekund pokrývá operaci požadavku. Rozpočet connect na 5 sekund zahrnuje čekání na volné spojení z poolu, takže vytížený pool jej může vyčerpat před otevřením nového socketu. Toto rozlišení je důležité při úpravě jediného volání na souběžné kontroly.
trust_env=False ponechává zobrazenou trasu explicitní. aiohttp ve výchozím stavu nevyhledává proxy proměnné prostředí; exportování proměnné v jiném terminálu toto volání nenastaví. trust_env=True volte pouze tehdy, když zděděné prostředí procesu představuje zamýšlená směrovací pravidla.