如果没有正文,是否需要关闭 JerseyClient (2.1.x) 响应的连接?

Do you need to close a Connection of a JerseyClient (2.1.x) Response, if it has no body?

在某些情况下,我们不会明确关闭响应(由 JerseyClient 生成)的连接,这有时会导致严重的问题。关于重构,我想知道,我们是否需要在没有正文的响应上调用 close()


到目前为止我知道:

那么, 响应又是什么?

在我看来,无论实体内容如何,​​始终调用 Response.close() 是非常明显的。

  • 没有与通话相关的费用
  • 引入一个不需要一直调用的Response.close()方法是一个非常违反直觉的设计。这种混淆会蔓延到您的代码中。
  • Javadoc 似乎说空实体不需要它,但这不是很清楚。
  • JAX-RS 实现可能会误解 spec 并要求调用 close()
  • 您的资源服务器实现可能会更改,现在发送一个实体。那么你在客户端上有资源泄漏。
  • 您已经提到似乎存在问题...