Vienam asinhronam pieprasījumam caur HTTP starpniekserveri bez autentifikācijas norādiet maršrutu pie session.get(). Ja vajag, pievienojiet projektam aiohttp:

uv add aiohttp

Aizstā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.

Saistītie raksti