1. 程式人生 > >RestTemplate請求出現401錯誤

RestTemplate請求出現401錯誤

rri 抓包 發現 異常 自動 postman bsp 執行 出現

  最近遇到一個請求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

RestTemplate請求出現401錯誤