tft每日頭條

 > 生活

 > python編程常見問題與解答

python編程常見問題與解答

生活 更新时间:2024-07-30 12:19:02

python編程常見問題與解答(Python接口測試之401錯誤的分析和解決方法)1

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

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

401 UNAUTHORIZED

Headers

Content-Type: application/jsonWWW-Authenticate: Basic realm="Authentication Required"Content-Length: 37Server: Werkzeug/0.11.13 Python/2.7.12Date: Wed, 14 Mar 2018 14:57:24 GMT

{ "error": "Unauthorized access"}

依據錯誤的信息可以獲取到,發送的請求需要有通過HTTP的認證的認證信息,如果在浏覽器中訪問,會直接彈出需要輸入用戶名和密碼的彈出框,見截圖:

python編程常見問題與解答(Python接口測試之401錯誤的分析和解決方法)2

那麼在HTTP的認證中,經常會被使用到認證方式分别是BASIC認證和DIGEST認證,我們具體來看BASIC的認證方式是一種流行,行業标準的身份驗證方式,是在HTTP1.0中指定。主要是指使用用戶ID和密碼使用Base64編碼标準進行編碼,并通過HTTP進行傳屬,隻有當用戶ID和密碼有效時,服務器才允許用戶訪問。

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

Response (20.345s) - http://localhost:5000/hotel/username/

200 OK

Headers

Content-Type: application/jsonContent-Length: 308Server: Werkzeug/0.11.13 Python/2.7.12Date: Wed, 14 Mar 2018 15:09:33 GMT

{ "datas": [

{ "check in": "2018-03-08 08:20:10",

"check out": "2018-03-09 14:00:00",

"identity card": "23012919950425723X",

"phone": "13484545190",

"room number": "1104",

"userid": 1,

"username": "李四",

"vpl": "京AJ3585"

}

]

}

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

#!/usr/bin/env python

#-*-coding:utf-8-*-

import requests

r=requests.get(

'http://localhost:5000/hotel/username/',

auth=('wuya','admin'))

print r.text

或者直接指定HTTPBasic,見修改後的代碼:

#!/usr/bin/env python

#-*-coding:utf-8-*-

import requests

from requests.auth import HTTPBasicAuth

r=requests.get(

'http://localhost:5000/hotel/username/',

auth=HTTPBasicAuth('wuya','admin'))

print r.text

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved