java - 使用连接后需要调用java.net.HttpURLConnection.disconnect()?

标签 java android http httpurlconnection

我在 Android (API 16) 上使用 java.net.HttpURLConnection。我使用 connect() 然后使用 getInputStream() 获取 InputStream 以从连接中读取数据。在我使用 InputStream(即使用数据)之后,我close() 它。

问题是:这是否也关闭了底层的 HttpURLConnection(就像通过调用 disconnect() 一样)?我的猜测不是,但我只是想确认这一点。更普遍的问题是:当连接不再有用时,我是否需要调用 java.net.HttpURLConnection.disconnect()?

问题是我有一种方法可以打开一个到给定主机的 HttpURLConnection。签名是:InputStream OpenHttpConnection(String stringURL, String method)。它返回一个 InputStream,调用者使用它从连接中读取数据,但是如果我从该方法的主体中调用 disconnect(),那么 InputStream 关闭并变得无用(我已经确认了这一点)。但是,另一方面,如果当我从调用者调用 InputStream 上的 close() 时连接没有关闭,那么我将有一个连接浪费资源.

有什么建议吗?

最佳答案

如果底层流仍然打开,调用 disconnect() 确实会关闭它们,但它还会将连接的资源释放回连接池,因此在您使用时调用它仍然是个好主意即使您在其他地方离散地关闭流,也能够(并完成连接)。

关于java - 使用连接后需要调用java.net.HttpURLConnection.disconnect()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148057/

相关文章:

android - 图库安卓 :unselectedAlpha

java - 应用程序在恢复后没有响应

java - Apache HttpClient - 需要使用 MultiThreadedHttpConnectionManager?

http - 一次下载多个文件

java - 如何通过发送 POST 查询通过 URL 打开新页面?

java - 使用两个 LocalDateTime 实例计算持续时间

java - 广播接收器为零且 Oreo + 设备无法工作

java - 在 fragment 之间共享代码

java - Android - ListView 项上的 OnClickListener 仅影响最后一行

java - 处理完成后使用同一线程进行其他数据库操作