为什么 aiohttp 响应的 json() 方法需要等待?



我不明白为什么需要等待resp.json()。据我了解,async/await 在处理 I/O 时很有用。但是当我在下面的示例中调用 resp.json(( 时,Web 请求是否尚未使用上面行中的 session.get(( 处理?

async with session.get('https://api.github.com/events') as resp:
print(await resp.json())
但是

当我在下面的示例中调用 resp.json(( 时,Web 请求是否尚未在上面行中使用 session.get(( 进行处理?

不,它只读取HTTP标头,要获取响应正文,您需要读取响应的其余部分。

这非常有用,因为您可以检查HTTP标头并避免在服务器返回错误的HTTP代码时读取响应的其余部分。

另一个示例:如果您预计响应正文很大,则可以按块读取它以避免 RAM 过度使用(在此处查看注释(。

相关内容

  • 没有找到相关文章