add aiohttp get text (#749)

This commit is contained in:
LawyZheng
2024-08-28 23:21:47 +08:00
committed by GitHub
parent 4eca786dde
commit 9cc290cc80

View File

@@ -45,6 +45,41 @@ async def aiohttp_get_json(
raise Exception(f"Failed to fetch data from {url}")
async def aiohttp_get_text(
url: str,
params: dict[str, Any] | None = None,
headers: dict[str, str] | None = None,
cookies: dict[str, str] | None = None,
retry: int = 0,
proxy: str | None = None,
timeout: int = DEFAULT_REQUEST_TIMEOUT,
raise_exception: bool = True,
retry_timeout: float = 0,
) -> str:
async with aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=timeout)) as session:
count = 0
while count <= retry:
try:
async with session.get(
url,
params=params,
headers=headers,
cookies=cookies,
proxy=proxy,
) as response:
if response.status == 200:
return await response.text()
if raise_exception:
raise HttpException(response.status, url)
LOG.error(f"Failed to fetch data from {url}", status_code=response.status)
return ""
except Exception:
if retry_timeout > 0:
await asyncio.sleep(retry_timeout)
count += 1
raise Exception(f"Failed to fetch data from {url}")
async def aiohttp_post(
url: str,
data: dict[str, Any] | None = None,