前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python接口测试之401错误的分析和解决(十七)

python接口测试之401错误的分析和解决(十七)

作者头像
无涯WuYa
发布2018-10-25 15:58:43
1.4K0
发布2018-10-25 15:58:43
举报

通过一个案例来分析在HTTP的请求中403错误的解决以及HTTP的状态码中403怎么理解,见发送一个请求后,返回的状态码,见如下的信息:

在如上的的截图中,可以看到返回了HTTP状态码是403,那么如何这个过程了,在HTTP的状态码中,403 Forbidden表示对请求资源的访问被拒绝,而且服务端没有给出为什么拒绝的理由,比如我们在浏览器访问如上链接,见访问后服务端的回应:

代码语言:javascript
复制
{
  "error": "Unauthorized access"
}

见General的内容:

代码语言:javascript
复制
Request URL:http://localhost:5000/hotel/username/
Request Method:GET
Status Code:403 FORBIDDEN
Remote Address:127.0.0.1:5000

见Response Headers部分的内容:

代码语言:javascript
复制
Content-Length:37
Content-Type:application/json
Date:Sun, 01 Apr 2018 14:04:36 GMT
Server:Werkzeug/0.11.13 Python/2.7.12
WWW-Authenticate:Basic realm="Authentication Required"

在如上的信息中,首部字段WWW-Authenticate用于HTTP访问认证,它会告诉客户端用于请求URI所指定资源的认证方案(Basic或者是Digest)。显示Basic,那么我们得到认证方案使用的是Basic Auth,在使用postman请求的时候需要鉴权,鉴权后再次访问,HTTP的状态码不再是403,而是200。见鉴权后的请求结果:

在请求中,headers中必须带上Authorization,要不就会再次出现403的错误。

下面实现使用python语言来处理403的错误,以及请求的时候带上鉴权,见实现的代码:

代码语言:javascript
复制
#!/usr/bin/env python 
#-*-coding:utf-8-*-

import  requests

r=requests.get(
   url='http://localhost:5000/hotel/username/',
   auth=('wuya','admin'))
print r.text

见执行如上代码后,打印的结果:

代码语言:javascript
复制
{
  "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": "\u674e\u56db", 
      "vpl": "\u4eacAJ3585"
    }
  ]
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档