Python aiohttp 返回 500 错误,而请求工作正常

时间:2021-03-23 18:12:30

标签: python-requests python-asyncio aiohttp

我正在使用 DELETE 和 POST 请求(包括 json)ping 公司的内部 API。使用请求库执行此操作时,一切正常。

使用 asyncio.gather() 使用 aiohttp 执行此操作时,我经常收到“500”错误响应:“失败...:...异常”。 DELETE 请求每次都有效,但 POST 请求无效。第一个 POST 请求大约有 10% 的时间返回此错误。第二个或第三个 POST 请求大约 50% 的时间返回错误,如果有 10 个或更多请求,每个请求返回错误的概率高达 90%。错误是随机的:每次重试都会发生在列表中的不同请求上。

我想可能是异步请求的速度,但是当我在请求之间 time.sleep(1) 时,我得到了相同的结果。然后我查看服务器是否正在读取 json,但是当我排除发布的 json 时,我得到了一个不同的错误,即服务器无法读取 json。

还能是什么?

编辑:这是基本的外推代码:

async with aiohttp.ClientSession() as session:
   await asyncio.gather(*[ping_api(session, item) for item in items])
async def ping_api(session, item)
   data = {'foo': item}
   try: 
        r = await session.post('https://random-company', headers=headers, cookies=cookies, json=data)

如果我将 ping_api 中的 await aiohttp 会话替换为常规请求会话,则可以完美地检索数据。

0 个答案:

没有答案