首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python接口测试之401错误的分析和解决

在接口的测试中,经常会遇到客户端向服务端发送一个请求,服务端返回401的错误,那么今天本文章就来说明在接口测试中如何分析以及解决该问题。

我们知道在HTTP返回的状态码中,401错误表示的是被请求的页面需要用户名和密码。401的错误详细的可以描述为:客户端发送请求抖到服务端,页面需要验证服务端会返回401的错误,见如下的错误信息:

401UNAUTHORIZED

Headers

依据错误的信息可以获取到,发送的请求需要有通过HTTP的认证的认证信息,如果在浏览器中访问,会直接弹出需要输入用户名和密码的弹出框,见截图:

那么在HTTP的认证中,经常会被使用到认证方式分别是BASIC认证和DIGEST认证,我们具体来看BASIC的认证方式是一种流行,行业标准的身份验证方式,是在HTTP1.0中指定。主要是指使用用户ID和密码使用Base64编码标准进行编码,并通过HTTP进行传属,只有当用户ID和密码有效时,服务器才允许用户访问。

在我们的案例中,使用的认证方式是BASIC的认证方式,那么在客户端向服务端发送请求的时候,带上用户信息,再次请求可以成功。在postman中的Basic auth指定用户名和密码,见请求成功的信息:

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

200OK

Headers

当然我们也可以使用requests轻松的解决这部分,见实现的代码:

#!/usr/bin/env python

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

importrequests

r=requests.get(

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

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

printr.text

或者直接指定HTTPBasic,见修改后的代码:

#!/usr/bin/env python

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

importrequests

fromrequests.authimportHTTPBasicAuth

r=requests.get(

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

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

printr.text

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180314G1U5AH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券