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-ийг сонго.