使用 aiohttp 无法完全下载图片

Image doesn't download fully with aiohttp

我正在使用以下方法获取图像,但下载不正确,只能看到图像顶部的一小部分。文件大小小于 256 kB。出了什么问题,我该如何解决?

async with aiohttp.ClientSession() as session:
    async with session.get(url, timeout = 20) as response:
        if response.status == 200:
            image = await response.content.read(262144) # 256 kiB
        else:
            print("Check your URL!")
            return

documentation 表示 read(n) 最多读取 n 字节,但可能 return 更少。您必须循环调用它,直到它 return 是一个表示 EOF 的空字符串。

如果您不想实现该循环(这仅在您有自己的缓冲或流式传输系统时才有用),只需调用 read() 不带大小参数即可一次性接收所有数据.