繁体   English   中英

如何获取Java中的HTTP响应大小(以字节为单位)

[英]How to Get the HTTP Response Size in Java (in Bytes)

我有一个Java Servlet和相应的HttpServletRequest / HttpServletResponse对象。 我需要找出发送回客户端的响应的大小(以字节为单位)。 这个问题很简单,但是却非常困难,我找不到很好的例子。

首先, HttpServletResponse类具有一个返回ServletOutputStream的方法,但没有大小/长度信息。

HttpServletResponse.getOutputStream()  :  ServletOutputStream

有人指出了Apache Commons的CountingOutputStream ,您可以在使用数据时将其“包装”或“转发”到主输出,答案中没有给出实际的代码,我无法使其正常工作。 具有特定代码示例的任何解决方案将不胜感激。 谢谢。

servlet仍需要照常工作,只需要捕获每个周期的响应大小即可。

由于响应是连续编写的,因此您有两个选择:

  • 包装HttpServletResponse以便返回您自己的OutputStream包装器,该包装器依次计算写入其中的字节数
  • 使用tomcat Valve记录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM