SimpleHttpConnectionManagerが正しく使用されていません。HttpMethod.releaseConnection()が常に呼び出され、一度に1つのスレッドやメソッドのみがこの接続マネージャーを使用していることを確認してください。
このエラーが表示され、ダウンロードしたいファイルが失敗して再試行したり、未完了のダウンロードが発生したりする理由を誰かが知っていますか?
ありがとうございました !
SimpleHttpConnectionManagerが正しく使用されていません。HttpMethod.releaseConnection()が常に呼び出され、一度に1つのスレッドやメソッドのみがこの接続マネージャーを使用していることを確認してください。
このエラーが表示され、ダウンロードしたいファイルが失敗して再試行したり、未完了のダウンロードが発生したりする理由を誰かが知っていますか?
ありがとうございました !
SimpleHttpConnectionManagerを使用して、複数のスレッドからの接続を作成および使用しないようにしてください。単純な接続マネージャーはそのために設計されていません-それは常に同じ接続を返します、そしてこれはスレッドセーフではありません。
マルチスレッド環境では、接続のプールを使用する別のマネージャーを使用します。MultiThreadedHttpConnectionManagerを参照してください。
これを信用しないことをお勧めしますが、Eyal Schneiderの回答によると、VincentdeVillersの優れたブログでMultiThreadedHttpConnectionManagerの使用に関する詳細情報を見つけてください。
リンクが消えた場合に備えてコピーされたコードスニペット:
HttpClient httpclient = new HttpClient(new MultiThreadedHttpConnectionManager());
GetMethod httpget = new GetMethod("http://www.myhost.com/");
try {
httpclient.executeMethod(httpget);
Reader reader = new InputStreamReader(
httpget.getResponseBodyAsStream(), httpget.getResponseCharSet());
// consume the response entity
} finally {
httpget.releaseConnection();
}