Pidä yhden asynkronisen, todennuksettoman HTTP-välityspalvelinpyynnön reitti kohdassa session.get(). Lisää aiohttp projektiin tarvittaessa:

uv add aiohttp

Korvaa 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ö.

Aiheeseen liittyvät artikkelit