Jedna požiadavka aiohttp cez HTTP proxy
Pošlite požiadavku aiohttp cez HTTP proxy bez overovania, skontrolujte stav a dokončite ju v explicitnom asynchrónnom životnom cykle.
Pre jednu asynchrónnu požiadavku cez HTTP proxy bez overovania ponechajte trasu pri session.get(). Podľa potreby pridajte aiohttp do projektu:
uv add aiohttpDokumentačnú adresu nižšie nahraďte svojím počúvajúcim HTTP bodom alebo kandidátom zo zoznamu HTTP proxy. Musí povoľovať CONNECT k cieľu HTTPS; koncový bod podporujúci len SOCKS potrebuje vhodný konektor namiesto tohto 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žiadavka vypíše svoj stav HTTP a prvých 200 znakov textu odpovede. Stav 403 alebo 429 tu zostáva odpoveďou, ktorú možno prezrieť; volajte response.raise_for_status(), ak má aplikácia meniť neúspešné stavy na výnimky. Asynchrónni správcovia kontextu zatvoria reláciu a odpoveď po skončení blokov, aj pri výnimke.
Rozpočet total v dĺžke 15 sekúnd pokrýva operáciu požiadavky. Rozpočet connect v dĺžke 5 sekúnd zahŕňa čakanie na voľné spojenie z poolu, takže vyťažený pool ho môže minúť pred otvorením nového socketu. Toto rozlíšenie je dôležité pri úprave jedného volania na súbežné kontroly.
trust_env=False ponecháva zobrazenú trasu explicitnú. aiohttp predvolene nevyhľadáva proxy premenné prostredia; exportovanie premennej v inom termináli toto volanie nenastaví. trust_env=True voľte iba vtedy, keď zdedené prostredie procesu predstavuje zamýšľané smerovacie pravidlá.