86 votes

En Java, quand une connexion d'URL se ferme-t-elle?

Quand java lâche-t-il une connexion à une URL? Je ne vois pas de méthode close () ni sur l'URL ni sur URLConnection. La connexion est-elle libérée dès que la demande est terminée? Je demande principalement à voir 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?
}
 

55voto

James Schek Points 11070

Si vous convertissez en une connexion HttpURLConnection, il existe une méthode disconnect () . Si la connexion est inactive, il se déconnectera probablement immédiatement. Aucune garantie.

52voto

kasperjj Points 2726

Il dépend du protocole spécifié dans le protocole. Certains maintenir des connexions persistantes, d'autres ferment leurs connexions lors de votre appel, à proximité de l'entrée ou de outputstream donné par la connexion. Mais d'autres que de penser à la fermeture du flux que vous avez ouvert à partir de la URLConnection, il n'y a rien que vous pouvez faire.

À partir de la javadoc de java.net.URLConnection

L'invocation de la fermer() méthodes sur la InputStream ou d'un OutputStream URLConnection après une demande peut gratuit les ressources du réseau associé à cette instance, sauf protocole particulier les spécifications de spécifier différents les comportements.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X