HTTP پراکسی سے ایک aiohttp درخواست
aiohttp سے بلا تصدیق HTTP پراکسی درخواست بھیجیں، حالت دیکھیں اور واضح غیر ہم وقتی دورِ حیات میں اسے مکمل کریں۔
بلا تصدیق HTTP پراکسی سے ایک غیر ہم وقتی درخواست کے لیے راستہ session.get() پر رکھیں۔ ضرورت ہو تو منصوبے میں aiohttp شامل کریں:
uv add aiohttpنیچے کا دستاویزی پتہ اپنے HTTP سامع یا HTTP پراکسی فہرست کے امیدوار سے بدلیں۔ اسے HTTPS منزل تک CONNECT کی اجازت دینی چاہیے؛ صرف SOCKS والے نقطے کو اس 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())
درخواست HTTP حالت اور جواب کے متن کے پہلے 200 حروف دکھاتی ہے۔ 403 یا 429 بھی یہاں قابلِ معائنہ جواب رہتا ہے؛ ایپ کو ناکام حالتیں استثنا میں بدلنی ہوں تو response.raise_for_status() بلائیں۔ غیر ہم وقتی کانٹیکسٹ مینیجر بلاک ختم ہونے پر سیشن اور جواب بند کرتے ہیں، استثنا کے وقت بھی۔
15 سیکنڈ کا total بجٹ درخواست کی کارروائی محیط کرتا ہے۔ 5 سیکنڈ کے connect بجٹ میں پول کے خالی کنکشن کا انتظار بھی شامل ہے، اس لیے مصروف پول نیا ساکٹ کھلنے سے پہلے اسے ختم کر سکتا ہے۔ ایک کال کو بیک وقت جانچوں میں بدلتے ہوئے یہ فرق اہم ہے۔
trust_env=False دکھایا راستہ واضح رکھتا ہے۔ aiohttp طے شدہ طور پر پراکسی ماحول متغیر تلاش نہیں کرتا؛ دوسرے ٹرمینل میں متغیر ایکسپورٹ کرنا اس کال کو ترتیب نہیں دے گا۔ trust_env=True صرف تب چنیں جب عمل کو وراثت میں ملا ماحول ہی مطلوبہ روٹنگ پالیسی ہو۔