Я пытался поиграть с 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()
или res.text()
возвращает сопрограмму. Доступ к таким свойствам, как res.status
, работает хорошо, но text()
или json()
возвращает сопрограмму, из которой я не могу получить фактический ответ.
Думаю, я, вероятно, чего-то не понимаю, но я думал, что ожидание в будущем должно вернуть фактическое значение, когда оно будет готово.
Где я ошибаюсь?