Kimlik doğrulamasız HTTP proxy üzerinden tek asenkron istek için rotayı session.get() üzerinde tutun. Gerekirse projeye aiohttp ekleyin:

uv add aiohttp

Aşağıdaki belgelendirme adresini kendi HTTP dinleyicinizle veya HTTP proxy listesinden adayla değiştirin. HTTPS hedefine CONNECT izni vermelidir; yalnızca SOCKS destekleyen uç nokta, bu proxy argümanı yerine uygun bağlayıcı gerektirir.

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

İstek HTTP durumunu ve yanıt metninin ilk 200 karakterini yazdırır. 403 veya 429 burada incelenebilir bir yanıt olarak kalır; uygulamanız başarısız durumları istisnaya dönüştürmeliyse response.raise_for_status() çağırın. Asenkron bağlam yöneticileri, istisna durumunda da, blokları bitince oturumu ve yanıtı kapatır.

15 saniyelik total bütçesi istek işlemini kapsar. 5 saniyelik connect bütçesine havuzda kullanılabilir bağlantı beklemek dahildir; dolayısıyla meşgul havuz yeni soket açılmadan süreyi tüketebilir. Tek çağrıyı eşzamanlı kontrollere uyarlarken bu ayrım önemlidir.

trust_env=False gösterilen rotayı açık tutar. aiohttp varsayılan olarak proxy ortam değişkenlerini keşfetmez; başka terminalde birini dışa aktarmak bu çağrıyı yapılandırmaz. trust_env=True yalnızca sürecin devraldığı ortam amaçlanan yönlendirme politikasıysa seçilmelidir.

İlgili makaleler