java - 如何从 Java Exception 中获取 responseBody

标签 java exception httpresponse

在调用 REST 服务时,它给出了 HttpClientErrorException,我能够检索状态代码和错误消息,但我如何才能获得 responseBody

我正在尝试下面的代码,但无法转换为 HttpResponse

catch(HttpClientErrorException e) {  
   // I am trying to typecast to HttpResponse, but its throwing error
     HttpResponse response = (HttpResponse) e;
     String msg = response.getEntity().getContent().toString(); 
}

我做错了什么?谁能推荐一下?

最佳答案

HttpClientErrorException 扩展 RestClientResponseException,其中包含方法 getResponseBodyAsString()

所以将它转换为HttpResponse是错误的,事实上HttpClientErrorException并没有扩展HttpResponse

就这么办

catch(HttpClientErrorException e){  
     String body = e.getResponseBodyAsString();
}

了解更多信息 http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/HttpClientErrorException.html

关于java - 如何从 Java Exception 中获取 responseBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43578618/

相关文章:

java - 生成图 block 噪声图 "on the fly"

ruby-on-rails - 异常处理 : "undefined method ` ___ _' for nil:NilClass"

java - 为什么 catch block 会产生编译器错误?

c++ - 在派生类构造函数中抛出异常。为什么调用基类析构函数而不调用派生类析构函数?

javascript - JSON 响应被浏览器修改

PHP: "file_get_contents()"从经过内容验证的 URL 返回 NULL

java - 如何在java中为visual studio代码修复 "error: class found on application class path: Main"

java - 线程中出现异常 "Thread"java.lang.OutOfMemoryError : Requested array size exceeds VM limit

当客户端发送字符串时,Java websocket服务器接收到的不是纯文本

curl - 为什么没有 `Set-Cookie` header 响应?