Ena zahteva aiohttp prek posrednika HTTP
Pošljite zahtevo aiohttp prek posrednika HTTP brez preverjanja pristnosti, preglejte stanje in končajte v izrecnem asinhronem življenjskem ciklu.
Za eno asinhrono zahtevo prek posrednika HTTP brez preverjanja pristnosti ohranite pot pri session.get(). Po potrebi dodajte aiohttp v projekt:
uv add aiohttpSpodnji dokumentacijski naslov zamenjajte s svojo točko za poslušanje HTTP ali kandidatom s seznama posrednikov HTTP. Dovoljevati mora CONNECT do cilja HTTPS; končna točka samo za SOCKS potrebuje ustrezen povezovalnik namesto tega argumenta 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())
Zahteva izpiše stanje HTTP in prvih 200 znakov besedila odgovora. 403 ali 429 tu ostaja odgovor, ki ga je mogoče pregledati; pokličite response.raise_for_status(), če naj aplikacija neuspešna stanja spremeni v izjeme. Asinhroni upravljavci konteksta zaprejo sejo in odgovor ob koncu blokov, tudi ob izjemi.
15-sekundni proračun total zajema operacijo zahteve. 5-sekundni proračun connect vključuje čakanje na razpoložljivo povezavo iz zbirke, zato ga lahko zasedena zbirka porabi pred odprtjem nove vtičnice. To je pomembno pri prilagajanju enega klica sočasnim preverjanjem.
trust_env=False ohranja prikazano pot izrecno. aiohttp privzeto ne zazna okoljskih spremenljivk posrednika; izvoz spremenljivke v drugem terminalu tega klica ne nastavi. trust_env=True izberite le, kadar podedovano okolje procesa predstavlja načrtovano politiko usmerjanja.