RestTemplate請求出現401錯誤


  最近遇到一個請求API接口總是報401 Unauthorized錯誤,起初是認為這個是平台返回的,后來用Postman請求,發現平台其實返回的是一串json,里面帶有一些權限驗證失敗的消息,但到我們代碼里請求就自動變成401 Unauthorized錯誤。用抓包工具抓取代碼請求的平台返回數據,和用postman請求結果一致,都是有數據返回,但為什么到我們代碼里就會變成401 Unauthorized呢?

  在網上查了一些資料后,對方平台在鑒權失敗后返回在http頭里標注了權限驗證失敗信息和401狀態碼,同時將錯誤消息也返回在body里。但到RestTemplate后,檢測到401異常,直接拋出異常,導致外部接收不到body信息。

  解決方案:

  在RestTemplate 執行請求之前,加上下面這句話就可以實現忽略401錯誤。

1  restTemplate.setErrorHandler(new DefaultResponseErrorHandler(){
2       @Override
3       public void handleError(ClientHttpResponse response) throws IOException{
4         if(response.getRawStatusCode() != 401){
5            super.handleError(response);
6         }
7       }
8  });

參考文章:https://blog.csdn.net/achang07/article/details/80549741

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM