我一直在尝试使用 Python3.5 aiohttp 并编写了这个简单的包装函数 -
async def perform_async_http(self, url, method, data='', headers={}):
async with aiohttp.ClientSession() as session:
if method.lower() == 'get':
async with session.get(url, headers=headers) as response:
return response
async with session.post(url, data=data, headers=headers) as response:
return response
然后,我有以下使用此功能的代码-
http_future = self.perform_async_http(url, "post", data, headers)
res = await http_future
print(res.json())
问题是res.json()
orres.text()
返回一个协程。访问类似的属性res.status
效果很好,但是text()
或者json()
返回一个我无法从中检索实际响应的协程。
我想我可能不明白一些事情,但我认为等待未来应该在它准备好时返回实际值。
我哪里错了?