RestClientException客户端显示Spring Client身份验证的空响应主体

时间:2015-03-23 00:38:36

标签: java spring spring-mvc spring-security spring-security-oauth2

我在我的前端使用Spring Oauth客户端设置。我是对我的API进行身份验证,返回此

 {
   error: "unauthorized"
   error_description: "User does not exist"
 }

使用我的休息客户端(Google Plug:Advance RestClient);当我使用Spring Oauth Client设置时,我希望错误对象RestClientException在响应主体中具有该JSON结果,但它是空的。请参阅附图(Watch Console显示响应正文中的内容)。

enter image description here

右键点击图片并选择open image in new tab以使图片更大

发送请求

grant_type = c_password&安培;用户名=试验&安培;密码=试验&安培; CLIENT_ID =试验&安培; client_secret =测试

响应

 Date: Sun, 26 Apr 2015 20:59:45 GMT 
 Connection: close
 Cache-Control: no-store 
 Pragma: no-cache 
 Www-Authenticate: Bearer realm="api/", error="unauthorized",  error_description="User does not exist"
 Content-Type: application/json;charset=UTF-8 
 Server: Jetty(7.x.y-SNAPSHOT) 
 Via: 1.1 vegur 
 Raw
 JSON

2 个答案:

答案 0 :(得分:0)

这可能是RestTemplate错误 - 您的服务器(或代理)正在使用Connection: closeContent-Length标头的组合。

确认这一点的一种方法:让服务器编写Content-Length标头(在Spring中,添加ShallowEtagHeaderFilter就可以了。)

如果这个解决方法修复了这个问题,那么SPR-8016中修复了这个错误 - 将客户端应用程序升级到Spring 4.1.5就可以解决这个问题。

答案 1 :(得分:0)

似乎你得到的实际异常不是RestClientException。只需调试错误,就会出现HttpClientErrorException。所以赶上这个例外而不是一个。此异常具有获得所需结果的方法。