将 CloseableHttpClient 与 try-with-resources 结合使用

Using CloseableHttpClient with try-with-resources

我一直在使用 try-with-resources 搜索 CloseableHttpClient 的完整示例。我对关闭 CloseableHttpClient 是否也会关闭将在我调用 httpclient.execute(post) 时创建的 CloseableHttpResponse 对象感到困惑。我是否也需要将 CloseableHttpResponse 包装在 try-with-resources 中?

示例:

try(CloseableHttpClient httpclient = HttpClients.custom().build()) {
    HttpPost post = new HttpPost(url);
    CloseableHttpResponse res = httpclient.execute(post);

    // do something with res
} catch (Throwable e) {
    // do something with error
}

如果您想让响应参与资源尝试,您可以这样做。虽然当您已经捕捉到异常时,您可以以 } 结束 - 不需要额外的捕捉。

从技术上讲 CloseableHttpResponse is empty[=13= 中的 close () 的实现不是必需的]

根据 httpcomponents 文档 (https://hc.apache.org/httpcomponents-client-4.5.x/quickstart.html)

,您需要关闭 CloseableHttpResponse 以释放资源

哦。 不要捕获 Throwable - 这是一种糟糕的风格,会导致很难发现错误。