aiohttp只下载第一个n字节的正文

时间:2016-07-13 08:14:12

标签: elasticsearch python-3.5 aiohttp

我们正在使用aiohttp将数据发布到弹性搜索服务器中。此类插入上的弹性会为每个插入的行生成响应,从而导致大量不需要的流量返回到客户端应用程序。我们想使用以下代码来解决这个问题

response = await http_session.request("POST", url, data = data, params = params)
first_n_bytes = (await response.content.read(n_bytes)).decode("utf-8")
response.release()
# response.close()

首先我们尝试了发布方法,但是从文档和带宽测量中,它似乎也下载了整个内容。然后我们尝试了response.close()但我们不确定这是否是安全的事情,同时为其他请求保持相同的http_session。

问题在于response.close()是否安全,是否能解决我们的问题,或者是否有其他方式异步进行。

1 个答案:

答案 0 :(得分:3)

是的,致电resp.close()是安全的。 它关闭打开的服务器连接而不读取响应尾部。

显然连接关闭不支持保持活动,这是为什么resp.release()建议默认使用的原因。

但在你的情况下,resp.close()应该可以很好地运作。