【发布时间】:2016-06-29 10:40:42
【问题描述】:
我想确定响应的大小。这是通过 resp.ContentLength 获取内容大小的简单方法。但是,Size 是响应标头(通常为几百字节)加上响应正文的组合大小,由服务器提供。如何获取响应标头的大小?或者有没有直接得到响应的大小?
【问题讨论】:
-
仅供参考的响应通常是分块的,根本没有 Content-Length
-
使用 net/http 没有简单的方法可以做到这一点,但是这些信息有什么用呢?这可能不是确切的传输大小,因为请求可能是 TLS/HTTP2。你可以用httputil.DumpRequest 来近似它
-
从连接的接收端进行检查是否满足您的需求?
-
我认为理论上你可以实现一个
http.Transport,它将内置的net.Conn与一个精确计算传输字节数的net.Conn包装起来。但是httputil.DumpResponse和 JimB 说的类似,听起来更实用。