En Java, quand une connexion d'URL se ferme-t-elle?
-
07-07-2019 - |
Question
Quand java lâche-t-il les connexions à une URL? Je ne vois pas de méthode close () ni sur URL ni sur URLConnection. La connexion est-elle libérée dès que la demande se termine? Je demande principalement à savoir si je dois effectuer un nettoyage dans un gestionnaire d'exceptions.
try {
URL url = new URL("http://foo.bar");
URLConnection conn = url.openConnection();
// use the connection
}
catch (Exception e) {
// any clean up here?
}
La solution
Cela dépend du protocole spécifique spécifié dans le protocole. Certains maintiennent des connexions persistantes, d'autres ferment leurs connexions lorsque votre appel se ferme dans le flux d'entrée ou de sortie fourni par la connexion. Mais à part vous rappeler de fermer les flux que vous avez ouverts à partir d'URLConnection, vous ne pouvez rien faire d'autre.
À partir du javadoc pour java.net.URLConnection
Invocation des méthodes close () sur le InputStream ou OutputStream d'un URLConnection après une demande peut libérer ressources réseau associées à cette exemple, sauf protocole particulier spécifications spécifient différents comportements pour cela.
Autres conseils
Si vous lancez une conversion sur HttpURLConnection, il existe un disconnect () . Si la connexion est inactive, il se déconnectera probablement immédiatement. Aucune garantie.