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?
}
答案 0 :(得分:46)
这取决于协议中指定的特定协议。有些维持持久连接,当你的呼叫在连接给出的输入或输出流中关闭时,其他连接会关闭。但除了记住关闭你从URLConnection打开的溪流之外,你无能为力。
来自java.net.URLConnection的javadoc
调用close()方法 的InputStream或OutputStream 请求后的URLConnection可以免费 与此相关的网络资源 例如,除非特定的协议 规格指定不同 它的行为。
答案 1 :(得分:46)
如果转换为HttpURLConnection,则有disconnect()方法。如果连接空闲,它可能会立即断开连接。没有保证。