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?
}
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top