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

我是否需要关闭Response.Body以在假装客户端中进行自定义错误处理

宗政子琪
2023-03-14

我已经参照这个wiki页面为Feign客户端定义了自定义errordecoder

ErrorDecoder中,我通过调用response.body()读取响应正文

我检查了调用自定义错误解码器的synchronousMethodHandler。这有finally

} finally {
    if (shouldClose) {
        Util.ensureClosed(response.body());
}

因为wiki页面中没有指导方针。

共有1个答案

公西飞鸾
2023-03-14

如果您直接读取response对象,您必须自己关闭主体,您将泄漏资源。如果您返回response对象作为Feign接口的一部分,这也是正确的。

 类似资料:
  • 我正在使用JSch将文件传输到远程服务器。我已将其配置为使用sftp通道,用户/密码和StricHostKeyChecking设置为“否”。由于我将开放通道设置为sftp,JSch是否要求在客户端计算机上安装sftp/ssh客户端?

  • 问题内容: 我现在开始在JAX-RS中使用新的客户端API库,并且到目前为止真的很喜欢它。但是我发现一件事我不知道。我使用的API具有自定义错误消息格式,例如: 它返回400作为状态代码,但还包含描述性错误消息,以告诉您您做错了什么。 但是,JAX-RS 2.0客户端将400状态重新映射为通用状态,因此我丢失了良好的错误消息。它正确地将其映射到BadRequestException,但带有通用的“

  • 然而,JAX-RS2.0客户机正在将400状态重新映射为一般的状态,因此我丢失了良好的错误消息。它正确地将其映射到一个BadRequestException,但带有一个通用的“HTTP 400 Bad Request”消息。 是否有某种类型的拦截器或自定义错误处理程序可以被注入,以便我访问真正的错误消息。我一直在查看文档,但看不到任何方法。 我现在正在使用泽西,但我用CXF尝试了这个,得到了同样的

  • 我对假装很陌生。今天就发现吧……当我读到Spring Cloud Feign时,我的第一个问题是:“您如何包装您的Fiign客户机?” 我举个例子。假设我们有2个微服务M1和M2。M2使用来自M1的endpoint。 null 也许我完全错了,请指正。 多谢!拜拜

  • 问题内容: 我正在使用包裹在FileReader周围的BufferedReader读取本地文件: 我需要close()的为好,或将包装处理这个问题?我看过代码,人们在这里做这样的事情: 从Servlet调用此方法,并且我想确保我没有打开任何句柄。 问题答案: 没有。 根据javadoc为和关闭流 以及

  • 问题内容: 我目前使用nodejs创建一些实验项目。我已经用Spring编写了很多Java EE Web应用程序,并赞赏那里的依赖注入的简易性。 现在我很好奇:如何使用节点进行依赖注入?或者:我什至需要吗?是否存在替代概念,因为编程风格不同? 到目前为止,我在谈论简单的事情,例如共享数据库连接对象,但是我还没有找到一个令我满意的解决方案。 问题答案: 简而言之,您不需要像C#/ Java中那样的依