Ühe asünkroonse päringu jaoks läbi autentimata HTTP-puhverserveri hoia marsruut session.get() juures. Vajaduse korral lisa projektile aiohttp:

uv add aiohttp

Asenda allolev dokumentatsiooni aadress oma HTTP-kuulajaga või kandidaadiga HTTP-puhverserverite loendist. See peab lubama CONNECT-i HTTPS-sihtkohta; ainult SOCKS-i toetav lõpp-punkt vajab selle proxy argumendi asemel sobivat konnektorit.

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())

Päring väljastab HTTP-oleku ja vastuseteksti esimesed 200 märki. 403 või 429 jääb siin vaadeldavaks vastuseks; kutsu response.raise_for_status(), kui rakendus peaks ebaõnnestunud olekud eranditeks muutma. Asünkroonsed kontekstihaldurid sulgevad seansi ja vastuse oma plokkide lõpus, ka erandi korral.

15-sekundiline total ajavaru katab päringuoperatsiooni. 5-sekundiline connect ajavaru sisaldab vaba puuliühenduse ootamist, seega võib hõivatud puul selle ära kulutada enne uue sokli avamist. See erinevus loeb ühe kutse kohandamisel samaaegseteks kontrollideks.

trust_env=False hoiab näidatud marsruudi selgesõnalise. aiohttp ei leia vaikimisi puhverserveri keskkonnamuutujaid; muutuja eksportimine teises terminalis ei seadista seda kutset. Vali trust_env=True ainult siis, kui protsessi päritud keskkond on kavandatud marsruutimispoliitika.

Seotud artiklid