85

javaはいつURLへの接続を解放しますか? URL または URLConnection に close() メソッドが表示されないので、リクエストが終了するとすぐに接続が解放されますか? 私は主に、例外ハンドラーでクリーンアップを行う必要があるかどうかを確認するよう求めています。

try {
  URL url = new URL("http://foo.bar");
  URLConnection conn = url.openConnection();
  // use the connection
}
catch (Exception e) {
  // any clean up here?
}
4

3 に答える 3

54

HttpURLConnection にキャストすると、disconnect()メソッドがあります。接続がアイドル状態の場合、おそらくすぐに切断されます。保証はありません。

于 2008-11-07T17:53:00.433 に答える
50

これは、プロトコルで指定された特定のプロトコルに依存します。永続的な接続を維持するものもあれば、接続によって指定された入力ストリームまたは出力ストリームで呼び出しが閉じられたときに接続を閉じるものもあります。ただし、URLConnection から開いたストリームを閉じることを忘れないでください。他にできることはありません。

java.net.URLConnection の javadoc から

要求の後に URLConnection の InputStream または OutputStream で close() メソッドを呼び出すと、特定のプロトコル仕様で別の動作が指定されていない限り、このインスタンスに関連付けられているネットワーク リソースが解放される場合があります。

于 2008-11-07T17:46:18.900 に答える