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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Laoqi's Linux运维专列

访问控制Directory+filesMatch

访问控制 Directory : 每个站点或论坛都会有后台管理目录,当普通用户尝试登陆时需要Fobidden一下,或者后台只允许在公司才可以登录管理或者指定的I...

32040
来自专栏技术博文

HTTP协议详解

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善...

46890
来自专栏文大师的新世界

3. spring security & oauth2

解释看代码字面意思就懂了,没什么特殊的,还可以修改比如登录表单里的用户名和密码的名字,还可以添加各种登录成功之后的handler等等,写法都一样。

26420
来自专栏Linyb极客之路

网络编程之HTTP状态码详解

11340
来自专栏技术博文

http状态码一览表

http状态码一览表 1**:请求收到,继续处理 2**:操作成功收到,分析、接受 3**:完成此请求必须进一步处理 4**:请求包含一个错误语法或不能完成 5...

39070
来自专栏上善若水

006互联网相关之http的返回值的

10330
来自专栏ImportSource

一分钟了解 Keep-Alive

默认的HTTP连接(connection)通常都会在每次request完成后就关闭掉,这也就意味着server端会在发送了一个response之后就把TCP 连...

43570
来自专栏Java学习123

HTTP协议详解

66170
来自专栏王金龙的专栏

HTTP状态码及其含义

        开发Web项目的时候,因为环境搭建和配置的原因,经常会出现部署失败的情况;搭建这个博客的时候,也因为php-admin缺少某些库的原因,导致出现...

54120
来自专栏静默虚空的博客

剖析 HTTP 协议

HTTP 概述 HTTP 是什么? HTTP(HyperText Transfer Protocol,超文本传输协议)是WWW (World Wide Web)...

22770

扫码关注云+社区

领取腾讯云代金券