当前位置:   article > 正文

解决RestTemplate 401: org.springframework.web.client.HttpClientErrorException: 401 : [no body]

401 : [no body]

转载: https://blog.csdn.net/cc007cc009/article/details/110071142

  1. @Bean
  2. public RestTemplate restTemplate(RestTemplateBuilder builder) {
  3. RestTemplate restTemplate = builder.build();
  4. return restTemplate;
  5. }

改为

  1. @Bean
  2. public RestTemplate restTemplate(RestTemplateBuilder builder) {
  3. RestTemplate restTemplate = builder.build();
  4. restTemplate.setErrorHandler(new RtErrorHandler());
  5. return restTemplate;
  6. }
  • RtErrorHandler 白名单上的异常则不处理,直接返回
    1. package cn.linksign.supervise.exception;
    2. import org.springframework.http.HttpStatus;
    3. import org.springframework.http.client.ClientHttpResponse;
    4. import org.springframework.web.client.DefaultResponseErrorHandler;
    5. import java.io.IOException;
    6. import java.util.ArrayList;
    7. import java.util.List;
    8. /**
    9. * 功能:捕获RestTemplate异常
    10. *
    11. */
    12. public class RtErrorHandler extends DefaultResponseErrorHandler {
    13. @Override
    14. public boolean hasError(ClientHttpResponse response) throws IOException {
    15. return super.hasError(response);
    16. }
    17. @Override
    18. public void handleError(ClientHttpResponse response) throws IOException {
    19. HttpStatus statusCode = HttpStatus.resolve(response.getRawStatusCode());
    20. List<HttpStatus> donotDeal = new ArrayList<>(); // 白名单
    21. donotDeal.add(HttpStatus.UNAUTHORIZED);
    22. if (!donotDeal.contains(statusCode)) { // 非白名单则处理
    23. super.handleError(response);
    24. }
    25. }
    26. }

     

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/684602
推荐阅读
相关标签
  

闽ICP备14008679号