我正在将客户的应用程序迁移到Tomcat 6.在测试期间,我们发现他们的一些客户希望对总是的响应被分块,即Transfer-encoding:chunked。但是,Tomcat并不总是使用分块编码,有时会使用Content-Length,我假设因为响应大小足够小,以至于在发送标题时知道整个长度。
我已经看到很多关于如何禁用分块编码的问题/答案,但我遇到了相反的问题。我知道在每个响应中强制分块编码并且客户端应该与http1.1规范完全兼容并接受任一编码是不理想的,但我只是想知道是否我可以做任何简单的配置来启用所需的行为。
我单独使用Tomcat和标准的http连接器。我查看了连接器属性并使用了bufferSize和socketBuffer,没有运气。
我有什么办法可以强制进行分块响应吗?
答案 0 :(得分:2)
万一其他人遇到这种情况,我发现了一个hacky解决方案。我在写任何内容之前立即刷新输出流。这迫使Tomcat立即发送响应头并使用分块编码。我知道它很蹩脚,因为这意味着它在我完成处理之前会立即发送200状态代码,但这是我找到强制分块编码的唯一方法。