2012-03-14 744 views
0

我有一个Java Servlet和相应的对象HttpServletRequest/HttpServletResponse对象。我需要找出发送回客户端的响应的大小(以字节为单位)。简单的问题,但它是令人惊讶的困难,我找不到任何好的例子。如何获取Java中的HTTP响应大小(以字节为单位)

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

HttpServletResponse.getOutputStream() : ServletOutputStream 

有人指向Apache的百科全书CountingOutputStream,并且可以‘包装’或‘前进’,要同时消耗数据的主要输出,有在回答给定的没有实际的代码,我不能让它工作。任何具有特定代码示例的解决方案将不胜感激谢谢。

该servlet仍然需要照常工作,它只需要在每个周期捕获响应大小。

+2

你需要做什么与响应大小,什么时候?响应发送之前或之后?你是否试图使用这个数字来设置HTTP'Content-Length'头部? – 2012-03-14 19:11:46

+0

我确定在 – Bozho 2012-03-14 19:15:20

+0

附近有相同的问题有相同的问题,没有具体的代码。我希望看到有效的特定代码。 – 2012-03-14 19:18:27

回答

3

因为响应连续写入,你有两个选择:为了回报自己OutputStream包装,

  • 包装HttpServletResponse这反过来计算写入的
  • 使用Tomcat中的字节Vavle logging
+0

谢谢,但这对于我来说还不够。我需要看到我可以运行的特定代码,这些代码都可以工作。 – 2012-03-14 19:18:55

+2

这不是一个“写我的代码”网站。我告诉过你该怎么做,你应该只写代码。如果你不明白的东西,请具体说明 – Bozho 2012-03-14 19:28:37

相关问题