为什么作为响应返回空字节?

瓦西里

我正在学习python异步。我的问题是我试图以流媒体内容的形式获得答案,但由于我没有尝试,空字节总是出现。是什么原因?我究竟做错了什么?我选择了 Github API 作为例子。

我使用版本 python 3.8,aiohttp 3.7.4。

这是我的代码: import json import aiohttp import asyncio async def get_response(): url = 'https://api.github.com/events' async with aiohttp.ClientSession() as session: task1 = asyncio.create_task(make_request() session, url)) result = await asyncio.gather(task1) 返回结果

async def make_request(session, url):
    async with session.get(url) as resp:
        json_resp = await resp.json(loads=json.loads)
        bytes_resp = await resp.content.read(10)
        print(json_resp)
        print(bytes_resp)

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(get_response())

非常感谢。

闻听此事在这里输入图像描述

AKX

您不能将响应作为 JSON 读取一次,又作为字节读取一次,因为此时它已经被消耗了。(aiohttp 故意不在内部缓冲响应数据。)

如果两者都需要,

bytes_resp = await resp.content.read()
json_resp = json.loads(bytes_resp)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章