En Java, ¿cuándo se cierra una conexión URL?
-
07-07-2019 - |
Pregunta
¿Cuándo Java deja ir las conexiones a una URL? No veo un método close () en URL o URLConnection, ¿libera la conexión tan pronto como finaliza la solicitud? Principalmente solicito ver si necesito hacer alguna limpieza en un controlador de excepciones.
try {
URL url = new URL("http://foo.bar");
URLConnection conn = url.openConnection();
// use the connection
}
catch (Exception e) {
// any clean up here?
}
Solución
Depende del protocolo específico especificado en el protocolo. Algunos mantienen conexiones persistentes, otros cierran sus conexiones cuando su llamada se cierra en la corriente de entrada o salida dada por la conexión. Pero aparte de recordar cerrar las transmisiones que abrió desde URLConnection, no hay nada más que pueda hacer.
Del javadoc para java.net.URLConnection
Invocar los métodos close () en el InputStream o OutputStream de un URLConnection después de una solicitud puede liberar recursos de red asociados con esto instancia, a menos que un protocolo particular especificaciones especifican diferentes comportamientos para ello.
Otros consejos
Si realiza una conversión a una HttpURLConnection, hay una disconnect () . Si la conexión está inactiva, probablemente se desconectará de inmediato. Sin garantías.