【问题标题】:How to get the size of HTTP Response?如何获取 HTTP 响应的大小?
【发布时间】: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 说的类似,听起来更实用。

标签: go size response


【解决方案1】:

您可以实现一个 http.ResponseWriter 来计算它写入的字节数。创建自己的应该非常简单,或者您可以使用现有的库,例如 this one

【讨论】:

    猜你喜欢
    • 2010-12-13
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 2013-12-19
    • 1970-01-01
    相关资源
    最近更新 更多