来自一个 HttpURLConnection 的多个请求

2022-09-03 06:27:48

我如何在一个HttpURL中使用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

谢谢。


答案 1

来自 Javadoc:

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

该对象显然不是要重复使用的。

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


答案 2

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


推荐