Едно aiohttp барање преку HTTP прокси
Испратете aiohttp барање преку HTTP прокси без автентикација, проверете го статусот и завршете во јасен асинхрон животен циклус.
За едно асинхроно барање преку HTTP прокси без автентикација задржете ја рутата на session.get(). Додајте aiohttp во проектот ако треба:
uv add aiohttpЗаменете ја документациската адреса подолу со вашиот HTTP слушател или кандидат од листата со HTTP прокси-сервери. Мора да дозволува CONNECT до HTTPS одредиштето; точка само за 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() ако апликацијата треба да ги претвори неуспешните статуси во исклучоци. Асинхроните управувачи со контекст ја затвораат сесијата и одговорот по завршување на блоковите, и при исклучок.
Буџетот total од 15 секунди ја покрива операцијата на барањето. Буџетот connect од 5 секунди вклучува чекање на достапна врска од пулот, па зафатен пул може да го потроши пред отворање нов сокет. Разликата е важна кога едно повикување се приспособува за истовремени проверки.
trust_env=False ја одржува прикажаната рута изречна. aiohttp стандардно не открива прокси променливи на околината; извоз на една во друг терминал нема да го конфигурира повикот. Изберете trust_env=True само кога наследената околина на процесот е посакуваната политика за рутирање.