1

一部のJUnitテストでは、単純な埋め込みJettyインスタンスを使用しています。

JettyにContent-LengthヘッダーなしでHTTP応答を返すように強制したい(実際の特定のリクエストで発生するのを見てきたように)。

私は現在、リクエストをキャプチャする主な方法としてを実装handle(...)AbstractHandlerています。その後、URLのパラメータに基づいて、Jettyはさまざまな可能な応答を返します。

response.setHeader("Content-Length", null);動作しませんでしたが、それでも私のボディデータに基づいて有効なコンテンツの長さを返しました。

4

2 に答える 2

2

ヘッダーが設定されないようにする実装でHttpServletResponseをラップするjavax.servlet.Filterを作成します。Content-Length

HttpServletResponseWrapperに次のメソッドを実装してください。

それらのそれぞれは、次のような単純なコードにすることができます...

@Override
public void addHeader(String name, String val)
{
    if ( "Content-Length".equalsIgnoreCase(name) ) 
    {
        // Ignore content-length from servlets
        return;
    }
    super.addHeader(name,val);
}
于 2013-02-07T16:09:03.097 に答える
1

応答にいくつかのバイトまたは文字を書き込んでからフラッシュしてから、応答に他のいくつかのバイトまたは文字を書き込む場合、チャンク転送タイプを使用する必要があり、コンテンツの長さを設定できなくなります。実際に書き込まれる内容の長さを知らずにバイトを送信します。

于 2013-02-07T11:01:17.670 に答える