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.
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.
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).