来自一个HttpURLConnection的几个请求

时间:2010-03-16 19:42:55

标签: java request httpurlconnection

如何使用Java在一个HttpURLConnection中执行多个请求?

 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

感谢。

2 个答案:

答案 0 :(得分:15)

来自Javadoc:

  

每个HttpURLConnection实例用于发出单个请求。

该物体显然不应重复使用。

除了内存抖动和效率低下之外,为每个要创建的请求打开一个HttpURLConnection都没有大问题。但是,如果您想要更大规模的高效网络IO,最好使用像Apache HttpClient这样的专用库。

答案 1 :(得分:3)

除了正确的答案之外,也许你真正想要的是重用底层的TCP连接,也就是“持久连接”,JDK的HttpURLConnection确实支持它。因此,您不需要使用其他http库;虽然还有其他正当理由,但可能是性能(但不一定,取决于用例,库)。