アパッチ HttpClient 4.3b2、HttpCore 4.3。
PoolingHttpClientConnectionManager
私は5つの接続を同時に管理するために使用します:
PoolingHttpClientConnectionManager connectionManager;
HttpClient httpclient;
connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setDefaultMaxPerRoute(5);
httpclient = HttpClientBuilder.create().setConnectionManager(connectionManager).build();
サーバーのキープアライブ時間は 5 秒です。connectionManager.shutdown()
サーバーがクローズ接続プロセスを開始すると、connectionManager.closeExpiredConnections()
手動で実行するまで FIN_WAIT2 状態のままになりますconnectionManager.closeIdleConnections(5, TimeUnit.SECONDS)
。サーバーは FIN パッケージを待機します。サーバーがクローズプロセスを開始した後、クライアント側で接続を自動的に閉じるにはどうすればよいですか?
Chrome ブラウザーからリクエストを行うと、キープアライブによって接続を閉じようとすると、サーバーは TIME_WAIT 状態のままになります (FIN_WAIT2 状態は非常に急速に変化します)。Apache HttpClient で同じ動作を得るにはどうすればよいですか?