在某些情况下,我们没有明确关闭Response(由JerseyClient制造)的连接,这有时会导致严重的问题。关于重构,我想知道,是否需要在没有主体的Response上调用close()
。
我到目前为止知道:response.close()
当然会关闭连接并且是幂等的respnse.readEntity()
也将其关闭response.getStatus()
不关闭连接
那么,关于空响应又是什么呢?
最佳答案
在我看来,无论实体内容如何,始终调用Response.close()
更好。
没有与通话相关的费用
引入Response.close()
方法并不是一个很直观的设计,它不需要一直被调用。这种混乱蔓延到您的代码中。
Javadoc似乎说空实体不需要它,但这不是很清楚。
JAX-RS实现可能会误解spec并要求调用close()
。
资源的服务器实现可能会更改,现在会发送一个实体。然后,客户端上就会发生资源泄漏。
您已经提到似乎存在问题...