我有一个Java Servlet和相应的HttpServletRequest
/ HttpServletResponse
个对象。我需要找出发送回客户端的响应的大小(以字节为单位)。简单的问题,但这是非常困难的,我找不到任何好的例子。
首先,HttpServletResponse
类有一个返回ServletOutputStream
但没有大小/长度信息的方法。
HttpServletResponse.getOutputStream() : ServletOutputStream
有些人指向Apache Commons'CountingOutputStream
并且您可以在使用数据时将其“包装”或“转发”到主输出,答案中没有给出实际代码而我无法让它工作。任何具有特定代码示例的解决方案都将受到赞感谢。
servlet仍然需要像往常一样工作,它只需要在每个循环中捕获响应大小。
答案 0 :(得分:4)
由于响应是连续写入的,因此您有两种选择:
HttpServletResponse
以返回您自己的OutputStream
包装器,而后者又会计算写入其中的字节数