【问题标题】:Do I need close inputStream after using getResponseCode (HttpUrlConnection)使用 getResponseCode (HttpUrlConnection) 后是否需要关闭 inputStream
【发布时间】:2021-02-10 07:12:50
【问题描述】:

当我只检查下面的响应代码时,是否需要关闭 inputStream?

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

【问题讨论】:

标签: java inputstream httpurlconnection


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    作为服务器http的客户端,当你关闭连接时,你的客户端和服务器http之间的链接也就关闭了。

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

    如果请求在服务器尚未返回响应时被客户端关闭,则服务器可以捕获Broken Pipe异常,然后服务器可以管理客户端请求的关闭连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-12
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多