1. 程式人生 > 實用技巧 >如何訪問帶有驗證(Authorization)的url,並且返回資料

如何訪問帶有驗證(Authorization)的url,並且返回資料

實習上班領導讓我實現一個介面,傳輸json格式的資料到另外一個系統然後返回結果。介面實現倒是很順利,結果最後post卻遇到了一個坑。

例如:我要post json格式資料到http://username:password@ip地址:埠號/xxxxxxxxx

問題情況:

  使用postman把我要傳輸的json資料填入,返回成功。(原以為能提早完成任務)

  然後將專案部署到伺服器卻報錯,上實際執行返回:

  1. Need username or password

  2. 響應碼:401 msg:Unauthorized

解決方法:

  不能直接在url中使用username:password@,postman會自動配置Authorization的資訊產生成功的假象,實則要在程式碼中單獨設定header傳送username和password的值

  

 //username:password替換成正確的賬號密碼,並使用base64進行加密,將加密的位元組資訊轉化為string型別,encoding--->token
 String encoding = DatatypeConverter.printBase64Binary("username:password".getBytes("UTF-8"));

  我用的是Hutool中的HttpUtil.post(),直接按照鏈式變成規範後面加上addHeader("Authorization", "Basic " +encoding)。