plusieurs requêtes d'une seule connexion HttpURLConnection

Comment puis-je faire plusieurs requêtes en une seule connexion Httpurl avec Java?

 URL url = new URL("http://my.com");
 HttpURLConnection connection = (HttpURLConnection)url.openConnection();
 HttpURLConnection.setFollowRedirects( true );
 connection.setDoOutput( true );
 connection.setRequestMethod("GET"); 

 PrintStream ps = new PrintStream( connection.getOutputStream() );
 ps.print(params);
 ps.close();
 connection.connect();
 //TODO: do next request with other url, but in same connection

Merci.

14
demandé sur Stan Kurilin 2010-03-16 22:42:54

2 réponses

à Partir de la Javadoc:

chaque instance HttpURLConnection est utilisée pour faire une seule requête.

l'objet n'est apparemment pas destiné à être réutilisé.

mis à part un peu de mémorisation et d'inefficacité, il n'y a pas de gros problème à ouvrir une connexion HttpURLConnection pour chaque requête que vous voulez faire. Si vous voulez un réseau IO efficace sur une plus grande échelle, cependant, vous êtes mieux à l'aide d'une bibliothèque spécialisée comme Apache HttpClient.

15
répondu Carl Smotricz 2010-03-16 19:51:30

au-delà de la bonne réponse, peut-être que ce que vous voulez réellement est la réutilisation de la connexion TCP sous-jacente, alias "connexions persistantes", qui sont en effet supportées par la connexion HttpURLConnection de JDK. Vous n'avez donc pas besoin d'utiliser d'autres libs http pour cette raison; bien qu'il y ait d'autres raisons légitimes, peut-être des performances (mais pas nécessairement, dépend de use case, library).

3
répondu StaxMan 2010-10-20 16:04:02