我正在尝试修复一个问题。 http 响应 header :传输编码:分块
我们在 spring-boot + embedded-tomcat 中有一个 CXF-SOAP 网络服务。
SOAP 响应有一个 Content-Length
header ,没有 Transfer-Encoding
....
我猜这是正常的吗?
不幸的是,我们有一些遗留的客户端黑客,
这似乎只适用于 Transfer-Encoding: chunked
而没有 Content-Length
。
有没有办法强制服务器应用程序响应Transfer-Encoding: chunked
?
究竟是什么决定了生成哪种响应格式?
它是否可以某种方式配置?
最佳答案
通过设置响应的 BufferSize。
response.setBufferSize() 设置响应大小的 Content-Length header 。一旦响应大小超过 bufferSize,它将回退到 Transfer-Encoding: Chunked。缓冲区大小应设置为适当的值。将其设置为更高的值会在刷新之前缓冲内存中的所有响应。所以该值应该设置为一个乐观的大小。
Tomcat 缓冲区大小默认设置为 8K
其他选项:您可以为您的服务和您想要的设置标题添加响应过滤器。
关于tomcat - (spring-boot, cxf, tomcat) 内容长度与传输编码 : chunked?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44004250/