16

如何使用 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

谢谢。

4

2 回答 2

18

来自 Javadoc:

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

该对象显然不打算重复使用。

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

于 2010-03-16T19:51:30.113 回答
3

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

于 2010-10-20T16:04:02.840 回答