我正在尝试解决问题。 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/

10-10 05:00