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?
}
プロトコルで指定された特定のプロトコルに依存します。永続的な接続を維持するものもあれば、接続によって指定された入力または出力ストリームで呼び出しが閉じられたときに接続を閉じるものもあります。ただし、URLConnectionから開いたストリームを閉じることを忘れないでください。他にできることはありません。
Java.net.URLConnectionのjavadocから
特定のプロトコル仕様で異なる動作が指定されていない限り、リクエスト後にURLConnectionのInputStreamまたはOutputStreamでclose()メソッドを呼び出すと、このインスタンスに関連付けられたネットワークリソースが解放される場合があります。
HttpURLConnectionにキャストする場合、 disconnect() メソッドがあります。接続がアイドル状態の場合、おそらくすぐに切断されます。保証なし。