Yksi aiohttp-pyyntö HTTP-välityspalvelimen kautta
Tee aiohttp-pyyntö HTTP-välityspalvelimella ilman todentamista, tarkista tila ja päätä pyyntö selvässä asynkronisessa elinkaaressa.
Pidä yhden asynkronisen, todennuksettoman HTTP-välityspalvelinpyynnön reitti kohdassa session.get(). Lisää aiohttp projektiin tarvittaessa:
uv add aiohttpKorvaa alla oleva dokumentaatio-osoite omalla HTTP-kuuntelijalla tai ehdokkaalla HTTP-välityspalvelinten luettelosta. Sen on sallittava CONNECT HTTPS-kohteeseen; pelkkää SOCKSia tukeva päätepiste tarvitsee sopivan liittimen tämän proxy-argumentin sijaan.
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())
Pyyntö tulostaa HTTP-tilansa ja vastaustekstin ensimmäiset 200 merkkiä. 403 tai 429 on tässä edelleen tarkasteltavissa oleva vastaus; kutsu response.raise_for_status(), jos sovelluksen pitää muuttaa epäonnistuneet tilat poikkeuksiksi. Asynkroniset kontekstinhallitsijat sulkevat istunnon ja vastauksen lohkojensa päättyessä, myös poikkeuksen sattuessa.
15 sekunnin total-aikavara kattaa pyyntöoperaation. 5 sekunnin connect-aikavara sisältää vapaan pooliyhteyden odottamisen, joten varattu pooli voi kuluttaa sen ennen uuden soketin avaamista. Ero on olennainen, kun yksittäinen kutsu muutetaan samanaikaisiksi tarkistuksiksi.
trust_env=False pitää esitetyn reitin nimenomaisena. aiohttp ei oletuksena etsi välityspalvelimen ympäristömuuttujia; sellaisen vienti toisessa terminaalissa ei määritä tätä kutsua. Valitse trust_env=True vain, kun prosessin perimä ympäristö on tarkoitettu reitityskäytäntö.