In Java quando si chiude una connessione URL?
-
07-07-2019 - |
Domanda
Quando java lascia andare le connessioni a un URL? Non vedo un metodo close () su URL o URLConnection, quindi libera la connessione non appena termina la richiesta? Chiedo principalmente di vedere se devo eseguire una pulizia in un gestore di eccezioni.
try {
URL url = new URL("http://foo.bar");
URLConnection conn = url.openConnection();
// use the connection
}
catch (Exception e) {
// any clean up here?
}
Soluzione
Dipende dal protocollo specifico specificato nel protocollo. Alcuni mantengono connessioni persistenti, altri chiudono le connessioni quando la chiamata viene chiusa nell'input o outputstream fornito dalla connessione. Ma oltre a ricordare di chiudere i flussi aperti da URLConnection, non c'è nient'altro che tu possa fare.
Da javadoc per java.net.URLConnection
Richiamare i metodi close () su InputStream o OutputStream di un La connessione URLC dopo una richiesta potrebbe essere gratuita risorse di rete associate a questo istanza, salvo protocollo particolare le specifiche specificano diverse comportamenti per questo.
Altri suggerimenti
Se esegui il cast su una HttpURLConnection, c'è un disconnect () . Se la connessione è inattiva, probabilmente si disconnetterà immediatamente. Nessuna garanzia.