当前位置: 首页 > 知识库问答 >
问题:

将CloseableHttpClient与资源一起使用[duplicate]

壤驷鸿祯
2023-03-14

我一直在搜索一个完整的示例CloseableHttpClientwith try-with-Resources.我感到困惑,如果关闭CloseableHttpClient也关闭了CloseableHttpContent对象,当我调用httpclient.execute(post)时将创建该对象。我是否需要包装CloseableHttpContent在一个try与资源?

示例:

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
}

共有1个答案

庄子平
2023-03-14

如果你想让反馈者参与资源尝试,你就去做。尽管您已经捕获了异常,但您可以以}-不需要额外的捕获结束。

从技术上讲,这不是一个需求,因为在CloseableHttp响应中实现 关闭()是空的

根据httpcomponents文档,您需要关闭CloseableHttpResponse来释放资源(https://hc.apache.org/httpcomponents-client-4.5.x/quickstart.html)

哦。不要抓住可扔的——这是不好的风格,会导致很难找到错误。

 类似资料:
  • 我试图在一个带有spring security和KeyClope的java应用程序中同时使用领域和资源角色。不幸的是,KeyClope只会返回一个或另一个,具体取决于: 您仍然可以通过自定义代码获得这两种方法,但它会弄乱@PreAuthorize或spring boot方法等注释。isUserInRole,这会导致难看的代码。 有没有办法覆盖@PreAuthorize方法或JSON令牌Keyclo

  • 问题内容: 我正在尝试使用JDK 7的“尝试捕获资源”语句;IntelliJ突出显示了我的资源线, 此语言级别不支持尝试资源。 当我尝试编译时,我得到: java:-source 1.6不支持try-with-resources(使用-source 7或更高版本来启用try-with-resources) 我检查了当前项目是否启用了try-with-resources,并且我的项目正在使用JDK

  • 我试图弄清楚如何在CDI中使用构造函数注入,其中一个参数是JNDI查找。 用正常的打野,我可以做到以下几点: 如何指定参数是通过JNDI查找检索的bean?在哪里指定JNDI名称?

  • 摘要:对于跨源请求,将发送具有有效JSON的响应。(即不发送空响应。) 如果对/gettoken发出请求,那么CORSFilter将开始工作,并验证用户和起源。 这一切都很好,但问题是,当我从无效的来源向/gettoken发送get请求时,在浏览器控制台中,我得到一条正确的消息,“没有'Access-Control-Allog-Origin'header is present on the req

  • 问题内容: 因此,我一直在为这个(应该是)简单的练习而绞尽脑汁,以使该程序将日期字符串转换为对象,对其进行格式化,并在完成后将其作为字符串再次返回。 这是程序的最后一点,它从文件中获取一小段文本,将其分解为单独的记录,然后将记录分解为单独的数据并将它们分配给个人对象。 我已经在多个位置检查了该代码,并且该代码完全执行了应该执行的操作,直到调用了format函数(该函数抛出)为止。为对象分配了应该分

  • 问题内容: 我想在目录中获取具有特定扩展名的文件列表。在中,我看到了可以做到这一点的方法。 由于我需要特定的扩展名,因此我创建了一个。但是,当我与此一起使用时,出现编译错误。我以为自以来,我应该能够做到这一点。代码如下: 最后一行显示编译错误: 类型的方法不适用于类型的参数 我正在尝试使用,不是。为何编译器无法识别这一点? 如果我编写自己的扩展筛选器,则此方法有效。我宁愿使用而不愿自己写。我究竟做