Viens aiohttp pieprasījums caur HTTP starpniekserveri
Nosūtiet aiohttp pieprasījumu caur HTTP starpniekserveri bez autentifikācijas, pārbaudiet statusu un pabeidziet skaidrā asinhronā dzīves ciklā.
Vienam asinhronam pieprasījumam caur HTTP starpniekserveri bez autentifikācijas norādiet maršrutu pie session.get(). Ja vajag, pievienojiet projektam aiohttp:
uv add aiohttpAizstājiet tālāk doto dokumentācijas adresi ar savu HTTP klausīšanās punktu vai kandidātu no HTTP starpniekserveru saraksta. Tam jāatļauj CONNECT uz HTTPS galamērķi; tikai SOCKS galapunktam šī proxy argumenta vietā vajadzīgs atbilstošs savienotājs.
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())
Pieprasījums izvada savu HTTP statusu un pirmās 200 atbildes teksta rakstzīmes. 403 vai 429 šeit joprojām ir apskatāma atbilde; izsauciet response.raise_for_status(), ja lietotnei neveiksmīgi statusi jāpārvērš izņēmumos. Asinhronie konteksta pārvaldnieki aizver sesiju un atbildi, kad to bloki beidzas, arī izņēmuma gadījumā.
15 sekunžu total budžets aptver pieprasījuma darbību. 5 sekunžu connect budžetā ietilpst gaidīšana uz pieejamu savienojumu pūlā, tāpēc aizņemts pūls var to iztērēt pirms jaunas ligzdas atvēršanas. Tas ir būtiski, pārveidojot vienu izsaukumu par vienlaicīgām pārbaudēm.
trust_env=False saglabā parādīto maršrutu skaidri norādītu. aiohttp pēc noklusējuma nemeklē starpniekservera vides mainīgos; mainīgā eksportēšana citā terminālī šo izsaukumu nekonfigurēs. Izvēlieties trust_env=True tikai tad, ja procesa mantotā vide ir paredzētā maršrutēšanas politika.