Për një kërkesë asinkrone përmes proxy HTTP pa autentikim, mbajeni rrugën te session.get(). Shtoni aiohttp në projekt nëse duhet:

uv add aiohttp

Zëvendësoni adresën e dokumentacionit më poshtë me pikën tuaj të dëgjimit HTTP ose një kandidat nga lista e proxy-ve HTTP. Duhet të lejojë CONNECT drejt destinacionit HTTPS; një pikë vetëm për SOCKS kërkon lidhës të përshtatshëm në vend të këtij argumenti 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())

Kërkesa afishon statusin HTTP dhe 200 karakteret e para të tekstit të përgjigjes. Një 403 ose 429 mbetet këtu përgjigje e kontrollueshme; thirrni response.raise_for_status() nëse aplikacioni duhet t’i kthejë statuset e pasuksesshme në përjashtime. Menaxherët e kontekstit asinkron mbyllin sesionin dhe përgjigjen kur përfundojnë blloqet e tyre, edhe në përjashtim.

Buxheti total prej 15 sekondash mbulon operacionin e kërkesës. Buxheti connect prej 5 sekondash përfshin pritjen e një lidhjeje të lirë në grup, ndaj grupi i zënë mund ta shpenzojë para hapjes së një socket-i të ri. Dallimi ka rëndësi kur thirrja e vetme përshtatet për kontrolle të njëkohshme.

trust_env=False e mban rrugën e treguar të qartë. aiohttp nuk i zbulon si parazgjedhje variablat e mjedisit proxy; eksportimi i njërës në terminal tjetër nuk e konfiguron këtë thirrje. Zgjidhni trust_env=True vetëm kur mjedisi i trashëguar i procesit është politika e synuar e rutimit.

Artikuj të ngjashëm