Java 我可以强制jetty*不*包含用于单元测试的内容长度头吗?

Java 我可以强制jetty*不*包含用于单元测试的内容长度头吗?,java,http,junit,jetty,embedded-jetty,Java,Http,Junit,Jetty,Embedded Jetty,我在一些JUnit测试中使用了一个简单的嵌入式Jetty实例 我想强制Jetty返回一个没有内容长度头的HTTP响应(正如我们在野外看到的某些请求) 我目前实现了AbstractHandler的handle(…),作为捕获请求的主要方式,然后,根据URL中的参数,Jetty返回各种可能的响应,无论是好的还是不好的 response.setHeader(“内容长度”,null)不起作用,它仍然根据我的正文数据返回有效的内容长度。如果您在响应中写入一些字节或字符,然后刷新,然后在te响应中写入一些其

我在一些JUnit测试中使用了一个简单的嵌入式Jetty实例

我想强制Jetty返回一个没有内容长度头的HTTP响应(正如我们在野外看到的某些请求)

我目前实现了
AbstractHandler
handle(…)
,作为捕获请求的主要方式,然后,根据URL中的参数,Jetty返回各种可能的响应,无论是好的还是不好的


response.setHeader(“内容长度”,null)不起作用,它仍然根据我的正文数据返回有效的内容长度。

如果您在响应中写入一些字节或字符,然后刷新,然后在te响应中写入一些其他字节或字符,它将不得不使用分块传输类型,并且无法设置内容长度,因为它被迫在不知道实际写入内容长度的情况下发送字节。

创建一个包,用您的实现包装,以防止设置
内容长度

请确保在HttpServletResponseWrapper中实现以下方法

每一个都可以是一段简单的代码,类似于

@Override
public void addHeader(String name, String val)
{
    if ( "Content-Length".equalsIgnoreCase(name) ) 
    {
        // Ignore content-length from servlets
        return;
    }
    super.addHeader(name,val);
}