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?
}
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top