401的錯誤分析

2022-09-01 07:24:09 字數 1428 閱讀 6707

在介面的測試中,經常會遇到客戶端向服務端傳送乙個請求,服務端返回401的錯誤,那麼今天本文章就來說明在介面測試中如何分析以及解決該問題。

我們知道在http返回的狀態碼中,401錯誤表示的是被請求的頁面需要使用者名稱和密碼。401的錯誤詳細的可以描述為:客戶端傳送請求抖到服務端,頁面需要驗證服務端會返回401的錯誤,見如下的錯誤資訊:

headers

authentication required

"content-length: 37server: werkzeug/0.11.13 python/2.7.12date: wed, 14 mar 2018 14:57:24 gmt

依據錯誤的資訊可以獲取到,傳送的請求需要有通過http的認證的認證資訊,如果在瀏覽器中訪問,會直接彈出需要輸入使用者名稱和密碼的彈出框,見截圖:

那麼在http的認證中,經常會被使用到認證方式分別是basic認證和digest認證,我們具體來看basic的認證方式是一種流行,行業標準的身份驗證方式,是在http1.0中指定。主要是指使用使用者id和密碼使用base64編碼標準進行編碼,並通過http進行傳屬,只有當使用者id和密碼有效時,伺服器才允許使用者訪問。

在我們的案例中,使用的認證方式是basic的認證方式,那麼在客戶端向服務端傳送請求的時候,帶上使用者資訊,再次請求可以成功。在postman中的basic auth指定使用者名稱和密碼,見請求成功的資訊:

headers

]}

當然我們也可以使用requests輕鬆的解決這部分,見實現的**:

或者直接指定httpbasic,見修改後的**:

關於401的錯誤

1 錯誤號401.1 症狀 http 錯誤 401.1 未經授權 訪問由於憑據無效被拒絕。分析 由於使用者匿名訪問使用的賬號 預設是iusr 機器名 被禁用,或者沒有許可權訪問計算機,將造成使用者無法訪問。解決方案 1 檢視iis管理器中站點安全設定的匿名帳戶是否被禁用,如果是,請嘗試用以下辦法啟用...

CROS實現跨域時授權問題(401錯誤)的解決

如果我們訪問的資源是不需要授權的,也就是在http請求頭中不包含 authentication 頭那麼以上做法就足夠了。但是如果該資源是需要許可權驗證的,那麼這個時候跨域請求的預檢測 option 請求,由於不會攜帶身份資訊而被拒絕 瀏覽器會報出401錯誤。前幾天的文章 spring通過cros協議...

錯誤分析集合

1 the method find and modity text view from the type textactivity is never used locally 需要在oncreate 中宣告 2 出現程式強制關閉,可能是由於沒有宣告activity 3 如果按鈕出現在本地不可能呼叫的...