Pentru o cerere asincronă printr-un proxy HTTP fără autentificare, păstrează ruta la session.get(). Adaugă aiohttp în proiect dacă este necesar:

uv add aiohttp

Înlocuiește adresa de documentație de mai jos cu punctul tău de ascultare HTTP sau un candidat din lista de proxy-uri HTTP. Trebuie să permită CONNECT către destinația HTTPS; un punct care acceptă numai SOCKS necesită un conector potrivit în locul acestui argument 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())

Cererea afișează starea HTTP și primele 200 de caractere ale textului răspunsului. Un 403 sau 429 rămâne aici un răspuns inspectabil; apelează response.raise_for_status() dacă aplicația trebuie să transforme stările nereușite în excepții. Managerii de context asincroni închid sesiunea și răspunsul la sfârșitul blocurilor, inclusiv la o excepție.

Bugetul total de 15 secunde acoperă operația cererii. Bugetul connect de 5 secunde include așteptarea unei conexiuni disponibile în pool, deci un pool ocupat îl poate consuma înainte să se deschidă un socket nou. Distincția contează la adaptarea apelului unic la verificări concurente.

trust_env=False păstrează ruta prezentată explicită. aiohttp nu descoperă implicit variabilele de mediu proxy; exportarea uneia în alt terminal nu configurează acest apel. Alege trust_env=True doar când mediul moștenit de proces este politica de rutare dorită.

Articole similare