Za eno asinhrono zahtevo prek posrednika HTTP brez preverjanja pristnosti ohranite pot pri session.get(). Po potrebi dodajte aiohttp v projekt:

uv add aiohttp

Spodnji 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.

Sorodni članki