在Java中什么时候URL连接关闭?

时间:2008-11-07 17:42:17

标签: java exception url connection

java何时释放与URL的连接?我没有在URL或URLConnection上看到close()方法,所以它会在请求完成后立即释放连接吗?我主要是想在异常处理程序中查看是否需要进行任何清理。

try {
  URL url = new URL("http://foo.bar");
  URLConnection conn = url.openConnection();
  // use the connection
}
catch (Exception e) {
  // any clean up here?
}

2 个答案:

答案 0 :(得分:46)

这取决于协议中指定的特定协议。有些维持持久连接,当你的呼叫在连接给出的输入或输出流中关闭时,其他连接会关闭。但除了记住关闭你从URLConnection打开的溪流之外,你无能为力。

来自java.net.URLConnection的javadoc

  

调用close()方法   的InputStream或OutputStream   请求后的URLConnection可以免费   与此相关的网络资源   例如,除非特定的协议   规格指定不同   它的行为。

答案 1 :(得分:46)

如果转换为HttpURLConnection,则有disconnect()方法。如果连接空闲,它可能会立即断开连接。没有保证。