it-swarm.com.de

In Java Wann wird eine URL-Verbindung geschlossen?

Wann lässt Java eine Verbindung zu einer URL los? Ich sehe weder für URL noch für URLConnection eine close () -Methode, sodass die Verbindung freigegeben wird, sobald die Anforderung abgeschlossen ist? Ich frage hauptsächlich, ob ich in einem Exception-Handler etwas aufräumen muss.

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

Dies hängt vom spezifischen Protokoll ab, das im Protokoll angegeben ist. Einige behalten dauerhafte Verbindungen bei, andere schließen ihre Verbindungen, wenn Ihr Anruf in dem durch die Verbindung gegebenen Eingabe- oder Ausgabestrom beendet wird. Sie können jedoch nichts anderes tun, als sich daran zu erinnern, die über URLConnection geöffneten Streams zu schließen.

Aus dem Javadoc für Java.net.URLConnection

Das Aufrufen der close () -Methoden für den InputStream oder OutputStream einer URLConnection nach einer Anforderung kann Netzwerkressourcen freigeben, die dieser Instanz zugeordnet sind, es sei denn, bestimmte Protokollspezifikationen geben ein anderes Verhalten für diese Instanz an.

46
kasperjj

Wenn Sie in eine HttpURLConnection umwandeln, gibt es eine disconnect () -Methode. Wenn die Verbindung inaktiv ist, wird sie wahrscheinlich sofort getrennt. Keine Garantien.

48
James Schek