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?
}
有帮助吗?

解决方案

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

来自java.net.URLConnection的javadoc

  

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

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top