今天需要调用第三方平台rest接口,调用正常时没啥事,调用异常时比如401 时,发现后台解析response就报错HttpClientErrorException,body为null取不到。

springboot使用RestTemplate返回401时 HttpClientErrorException报错问题及解决方法

springboot使用RestTemplate返回401时 HttpClientErrorException报错问题及解决方法 

各种百度及官方文档,发现是resttemplat处理机制的问题,

1、对于非2xx的,4xx  和 5xx  都进行了当做错误来处理。可以去看官方文档。这就要求添加try  catche进行特殊处理。

2、使用resttemplate 前设置下requestfactory ,这样才能接收到body的值  。

restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory());

网上,解决方法很多,一类是catch后特殊处理,一类是采用重写错误捕获的方法,忽略掉4xx之类的处理方式,使之原样返回。

我使用的catch 特殊处理的方式,解决的此问题。

springboot使用RestTemplate返回401时 HttpClientErrorException报错问题及解决方法

 

修改后的代码如上图就是添加了1、2。两个地方是的问题第一解决。

springboot使用RestTemplate返回401时 HttpClientErrorException报错问题及解决方法

 

好了,问题解决,皆大欢喜!继续撸码!

相关文章:

  • 2022-12-23
  • 2021-11-11
  • 2022-12-23
  • 2021-09-13
  • 2022-12-23
  • 2022-12-23
  • 2021-04-29
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-09
  • 2022-12-23
  • 2021-06-23
  • 2022-12-23
  • 2022-01-24
  • 2021-08-08
相关资源
相似解决方案