专栏首页Python自动化测试python接口测试之401错误的分析和解决(十七)

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

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

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

{
  "error": "Unauthorized access"
}

见General的内容:

Request URL:http://localhost:5000/hotel/username/
Request Method:GET
Status Code:403 FORBIDDEN
Remote Address:127.0.0.1:5000

见Response Headers部分的内容:

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的错误,以及请求的时候带上鉴权,见实现的代码:

#!/usr/bin/env python 
#-*-coding:utf-8-*-

import  requests

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

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

{
  "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"
    }
  ]
}

本文分享自微信公众号 - Python自动化测试(wuya-python),作者:无涯

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 接口测试知识体系

    在2018年的总结还是在2019年的行业展望,都谈到一个关键字,那就是“接口测试”,针对大多数是来说,接口测试到底是什么,是简单的那个工具,发送一个...

    无涯WuYa
  • 工厂设计模式在自动化中的引用(二)

    工厂设计模式在自动化中的引用(一)中介绍了利用工厂设计模式,整合selenium2和appium,写在一个框架中,可以实现对web应用程序,移动应用程序...

    无涯WuYa
  • unittst与webdriver的关系(二)

    在初始python单元测试框架unittest与webdriver的关系(一)中,介绍了unittest与自动化的结合,下面介绍测试套件TestSu...

    无涯WuYa
  • HTTPS 安全最佳实践(二)之安全加固

    当你的网站上了 HTTPS 以后,可否觉得网站已经安全了?这里 提供了一个 HTTPS 是否安全的检测工具,你可以试试。

    ZC.TigerRoot
  • Golang 高效实践之并发实践context篇

    在上篇Golang高效实践之并发实践channel篇中我给大家介绍了Golang并发模型,详细的介绍了channel的用法,和用select管理channel。...

    用户2937493
  • 详解k8s组件Ingress边缘路由器并落地到微服务 - kubernetes

    Ingress 英文翻译 进入;进入权;进食,更准确的讲就是入口,即外部流量进入k8s集群必经之口。这到大门到底有什么作用?我们如何使用Ingress?k8s又...

    justmine
  • Linux静态链接库使用类模板的快速排序算法

    快速排序的本质是从数组中选一个参考值ref,比该参考值的大的,将其放在ref的右边,比ref小的放在左边,然后不断的对两边重复执行该动作

    砸漏
  • 《hadoop权威指南》笔记二: hdfs读写过程剖析

    Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。

    皮皮熊
  • Safe-Linking机制分析

    打算从glibc 2.32引入Safe-Linking 保护,将堆块头部保存的地址重新计算,具体计算过程如下:

    De4dCr0w
  • 谷歌用AI“摄影”大师,把街景变成专业级作品 | 附论文&作品全集

    安妮 编译自 CNBC 量子位出品 | 公众号 QbitAI 继上月把谷歌街景拿来研究城市变迁后,本月街景继续解锁新打开方式——将街景变为专业级的“摄影”作品。...

    量子位

扫码关注云+社区

领取腾讯云代金券