2

httpclientを使用して、サーバーから複数の小さなファイルを継続的にダウンロードしています。そのため、新しい接続を割り当てるために多くの時間を費やさないように、httpclient接続を再利用したいと思います。

また、接続を再利用して、既存の接続のアイドルタイムアウトを3分に設定するためのクライアントコードがすでにいくつかあります。

ただし、サーバーからの応答には常に「Connection:close [\ r] [\ n]」が含まれ、httpclientライブラリはそのようなヘッダーに遭遇した直後に接続を解放します。

httpclientにサーバーからの応答を無視させるにはどうすればよいですか、またはどのヘッダーを投稿すると、サーバーがそのような終了ヘッダーを返さなくなる可能性がありますか?

4

2 に答える 2

4

ヘッダーを無視できたとしてもConnection: close、ディレクティブに「違反」するのは良い考えではないと思います。

RFCは次のように述べています

HTTP/1.1 は、応答の完了後に接続が閉じられることを送信者が通知するための "close" 接続オプションを定義します。例えば、

   Connection: close

要求または応答ヘッダー フィールドのいずれかで、現在の要求/応答が完了した後、接続が「永続的」(セクション 8.1) と見なされるべきではないことを示します。

于 2011-08-22T09:36:38.523 に答える
1

HTTP リクエストに keep-alive ヘッダーを追加する必要があります。

http://download.oracle.com/javase/1.5.0/docs/guide/net/http-keepalive.html
https://www.rfc-editor.org/rfc/rfc1122#page-101
http:// httpd.apache.org/docs/1.3/keepalive.html

于 2011-08-22T11:19:05.997 に答える