In Java, wenn nicht schließt eine URL-Verbindung?
-
07-07-2019 - |
Frage
Wann lassen Sie Java zu einer URL ein Verbindungen gehen von? Ich sehe nicht, eine Methode close () auf beide URL oder URLConnection so dass es die Verbindung, sobald die Anfrage beendet oben freizugeben? Ich frage in erster Linie, um zu sehen, ob ich eine Sanierung in einem Ausnahmehandler tun müssen.
try {
URL url = new URL("http://foo.bar");
URLConnection conn = url.openConnection();
// use the connection
}
catch (Exception e) {
// any clean up here?
}
Lösung
Es hängt von dem spezifischen Protokoll im Protokoll angegeben. Einige behaupten, persistente Verbindungen, andere schließen ihre Verbindungen, wenn Ihr Anruf schließen in dem Eingang oder durch die Verbindung gegeben Output. Aber auch andere als die Erinnerung an die Ströme zu schließen Sie aus dem URLConnection geöffnet, es gibt nichts, was Sie tun können.
Von der javadoc für java.net.URLConnection
Aufrufen der close () Methoden, die auf der Input oder Output eines kann URLConnection nach einer Anfrage kostenlos Netzwerk-Ressourcen, die damit verbunden Instanz, es sei denn bestimmte Protokoll Spezifikationen angeben unterschiedliche Verhaltensweisen für sie.
Andere Tipps
Wenn Sie auf ein HttpURLConnection werfen, gibt es eine disconnect () Methode. Wenn die Verbindung im Leerlauf ist, wird es wahrscheinlich sofort trennen. Keine Garantien.