使用getResponseCodeHttpUrlConnection后是否需要关闭inputStream

问题描述

仅在检查响应代码时需要关闭inputStream吗?

    URL u = new URL(url);
    HttpUrlConnection con = (HttpUrlConnection) url.openConnection();
    int statusCode;
    try {
        statusCode = con.getResponseCode();
    } catch(Exception ex){}

解决方法

不,但是...
Java有一个垃圾收集器。
这意味着:当没有活动线程对其进行引用时,Java将销毁对象。
如果线程离开方法,那么所有对象很快就会从RAM中删除。

但是...直接关闭它们更干净。读起来更好。
在某些情况下,必须明确关闭。否则,系统资源可能会被“永远阻止”-但这几乎不取决于所用库的实现。

,

作为服务器http的客户端,当您关闭连接时,您将关闭客户端与服务器http之间的链接。

因此,为了获得最佳实践,请关闭连接。

如果在服务器尚未返回响应的情况下客户端关闭了请求,则服务器可以捕获断开的管道异常,然后服务器可以管理客户端请求的关闭的连接。