以下是使用aiohttp的代码:
async def send(self, msg, url):
async with aiohttp.ClientSession() as session:
async with session.post(url, data=msg) as response:
self._msg = response.read()
async def recv(self):
return await self._msg
它能够正常运行...大部分时间,但偶尔(实际上是频繁地)会出现各种异常 - 通常是截断响应或连接已关闭的异常。
相比之下,以下代码完美运行:
async def send(self, msg, url):
async with aiohttp.ClientSession() as session:
async with session.post(url, data=msg) as response:
self._msg = await response.read()
async def recv(self):
return self._msg
我想知道为什么第二个版本在我的情况下技术上是不正确的,我需要修复它。(它不正确的原因是在读取响应之前可能会调用recv函数)
self._msg
尚未设置,那么它将等待什么? - user2357112