HttpClient 4.0.1 - 接続を解放する方法は?[重複)。
2023-10-31 05:35:47
質問
たくさんのURLをループして、それぞれのURLに対して以下のようにしています。
private String doQuery(String url) {
HttpGet httpGet = new HttpGet(url);
setDefaultHeaders(httpGet); // static method
HttpResponse response = httpClient.execute(httpGet); // httpClient instantiated in constructor
int rc = response.getStatusLine().getStatusCode();
if (rc != 200) {
// some stuff...
return;
}
HttpEntity entity = response.getEntity();
if (entity == null) {
// some stuff...
return;
}
// process the entity, get input stream etc
}
最初のクエリは問題ありませんが、2番目のクエリはこの例外を投げます。
スレッド "main"で例外が発生しました。 java.lang.IllegalStateException: の無効な使用 SingleClientConnManager の無効な使用: 接続がまだ割り当てられています。 接続がまだ割り当てられています。接続がまだ割り当てられています。 接続を解放してから、別の接続を割り当ててください。 接続を解放してから、別の接続を割り当ててください。 org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199) at org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.java:173) ......。
これは単なるシングルスレッドアプリです。この接続を解放するにはどうしたらよいでしょうか。
どのように解決するのですか?
私自身の質問に答えると、接続 (およびリクエストに関連するその他のリソース) を解放するには、HttpEntity が返す InputStream を閉じる必要があります。
InputStream is = entity.getContent();
.... process the input stream ....
is.close(); // releases all resources
からの ドキュメント
関連
-
[解決済み】 エラー:java: javacTask: ソースリリース8はターゲットリリース1.8を必要とする
-
ApiModel と @ApiModelProperty の使用法
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
Java の switch case 文で必要な定数式の問題の解決法
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
Uncaught ReferenceError: は定義されていません。
-
java send https request prompt java.security.cert.について。
-
Java:未解決コンパイル問題の解決方法
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
ApiModel と @ApiModelProperty の使用法
-
[解決済み] Apache HttpClient APIにおけるCloseableHttpClientとHttpClientの違いは何ですか?
-
[解決済み] HttpRequest.execute()で例外が発生しました。SingleClientConnManagerの無効な使用: 接続がまだ割り当てられています。