我正在尝试解决问题。 http响应标题:Transfer-Encoding: chunked
在spring-boot + Embedded-tomcat中,我们有一个CXF-SOAP Web服务。
SOAP响应获得Content-Length
标头,而没有Transfer-Encoding
...。
我猜这是正常的吗?
不幸的是,我们有一些旧的客户端黑客,
似乎只能与Transfer-Encoding: chunked
一起使用,而不能与Content-Length
一起使用。
有没有一种方法可以强制服务器应用使用Transfer-Encoding: chunked
进行响应?
究竟是什么确定生成哪种响应格式?
它可以以某种方式配置吗?
最佳答案
通过在响应时设置BufferSize。
response.setBufferSize()设置响应大小的Content-Length标头。一旦响应大小超出bufferSize,它将回退到Transfer-Encoding:Chunked。缓冲区大小应设置为适当的值。将其设置为较高的值将在刷新之前将所有响应缓冲在内存中。因此,该值应设置为一个乐观的大小。
默认情况下,Tomcat缓冲区大小设置为8K
其他选项:您可以为服务添加响应过滤器,并在所需的设置标题中添加响应过滤器。
关于tomcat - (spring-boot,cxf,tomcat)Content-Length与Transfer-Encoding:分块吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44004250/