我正在使用HttpUrlConnection进行网络调用。我使用urlconnection.disconnect()
和inputstream.close()
来关闭连接
try {
HttpURLConnection uc = (HttpURLConnection) getUrlConnection(new URL(mUrl));
uc.setRequestProperty("Content-Type", "application/json");
uc.setDoOutput(true);
uc.setChunkedStreamingMode(0);
OutputStream out = new BufferedOutputStream(uc.getOutputStream());
InputStream in = new BufferedInputStream(uc.getInputStream());
in.close();
} catch (...) {
........
} finally {
if(uc != null)
uc.disconnect();
}
在服务器上运行netstat
命令后。但我仍然看到一个处于打开状态的tcp连接。
是否有任何关闭HttpUrlConnection
答案 0 :(得分:1)
disconnect()方法声明:
释放此连接,以便其资源可以重复使用或 闭合。
与其他Java实现不同,这不一定会关闭 可以重用的套接字连接。您可以禁用所有连接 通过在之前将http.keepAlive系统属性设置为false来重用 发出任何HTTP请求。
答案 1 :(得分:0)
似乎android总是使用不同的端口来打开每个新连接。并将它们缓存一段时间。 参考this link