HTTP proxy üzerinden tek bir aiohttp isteği
aiohttp ile kimlik doğrulamasız HTTP proxy isteği yapın, durumunu inceleyin ve açıkça belirlenmiş asenkron yaşam döngüsünde bitirin.
Kimlik doğrulamasız HTTP proxy üzerinden tek asenkron istek için rotayı session.get() üzerinde tutun. Gerekirse projeye aiohttp ekleyin:
uv add aiohttpAş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.