未调用getInputStream时,是否需关闭HttpUrlConnection的输入流?
关于HttpURLConnection资源释放的问题解答
不需要额外添加httpUrlConnection.getInputStream().close();代码,原因如下:
- 当仅读取HTTP响应头、未调用
getInputStream()或其他触发响应体读取的方法时,连接的核心资源并未被输入流占用。此时disconnect()方法已经能够完整释放该HTTP连接关联的所有资源。 - 只有在实际打开输入流(调用
getInputStream())后,才需要关闭输入流来释放其持有的资源。你当前场景完全用不到输入流,强行打开并关闭它不仅冗余,还可能触发不必要的响应体读取操作,增加额外开销。
你提供的代码中,finally块里的urlConnection.disconnect();已经是正确的资源清理方式,保持现有代码即可。
内容的提问来源于stack exchange,提问作者Loyea
相关产品推荐
相关产品推荐

