如何使用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
感谢。
答案 0 :(得分:15)
来自Javadoc:
每个HttpURLConnection实例用于发出单个请求。
该物体显然不应重复使用。
除了内存抖动和效率低下之外,为每个要创建的请求打开一个HttpURLConnection都没有大问题。但是,如果您想要更大规模的高效网络IO,最好使用像Apache HttpClient这样的专用库。
答案 1 :(得分:3)
除了正确的答案之外,也许你真正想要的是重用底层的TCP连接,也就是“持久连接”,JDK的HttpURLConnection确实支持它。因此,您不需要使用其他http库;虽然还有其他正当理由,但可能是性能(但不一定,取决于用例,库)。