接口测试 | 22 requests基础入门
时间:2022-05-07
本文章向大家介绍接口测试 | 22 requests基础入门,主要内容包括功能特性、安装、基本示例、小结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
概述
从本文开始分享requests相关知识,及如何用requests进行接口测试。
requests号称:是唯一的一个非转基因的Python HTTP库,人类可以安全享用。
功能特性
下面我们看看requests的功能特色:
- Keep-Alive & 连接池
- 国际化域名和URL
- 带持久化Cookie的会话
- 浏览器式的SSL认证
- 内容自动解码
- basic/Digest认证
- key/value Cookie管理
- 自动解压
- Unicode响应
- HTTP/HTTPS代理支持
- 文件分块上传
- 流下载
- 连接超时
- 分块请求
- 支持.netrc
看完上述特色,是不是发现掌握了requests库,在http/https处理方面几乎处于无敌状态了?
安装
先看下怎么安装requests, 执行以下命令:
pip install requests
安装好后如何导入requests模块呢?如下所示:
import requests
基本示例
下面我们看一个基本的示例,体验下requests的强大,直接上代码演示利用requests访问github的api,具体api说明请参见:
https://developer.github.com/v3
#-*- coding:utf-8 -*-
__author__ = "苦叶子"
# 导入模块
import requests
if __name__ == "__main__":
print("开源优测 - requests基本示例")
# 发送HTTP GET请求,获取github API列表
r = requests.get("https://api.github.com")
# 请求返回码
status_code = r.status_code
# 完整的返回头
headers = r.headers
# 请求返回头 content-type的值
content_type = r.headers["content-type"]
# 返回内容编码类型
code = r.encoding
# 返回内容文本
text = r.text
# 若返回结果为json格式,我们可以获取其json格式内容
json_data = r.json()
# 打印上述所有获取到的值
print("状态码: ", status_code)
print("返回头: ", headers)
print("content-type: ", content_type)
print("编码:", code)
print("文本内容: ", text)
print("json串内容: ", json_data)
将上述代码保存至requests_basic_demo.py中,执行下属命令运行:
python requests_basic_demo.py
运行结果如下图:
小结
本文演示了GET方法及如何获取响应状态码、响应头、编码、文本内容、json内容。
- 微软在动态语言支持上超越了Java?
- JAVA图片批量上传JS-带预览功能
- Netty-Websocket 根据URL路由,分发机制的实现
- DrawerLayout实现网易新闻抽屉效果
- shiro权限控制(一):shiro介绍以及整合SSM框架
- websocket(三) 进阶!netty框架实现websocket达到高并发
- Kafka源码系列之Broker的IO服务及业务处理
- Dubbo(五) Dubbo入门demo——helloworld
- Dubbo(四) Dubbo-Admin项目 Dubbo管理台
- volley请求原理
- Dubbo(三) 安装Zookeeper 单机-集群
- ASP.NET MVC Preview生命周期分析
- Dubbo(二) 认识Zookeeper
- Kafka源码系列之使用要点总结及重要错误解决
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 基于动态代理 Mock Dubbo 服务的实现方案
- ZanApi 让前后端协调更高效
- 【redis入门】redis安装后相关知识串讲
- 增量代码覆盖率工具
- Angularjs单选框相关
- 实习第七周
- 有赞 Android 崩溃保护的探索及实践
- 文章翻译:Node.js和Redis入门-安装与命令
- Angular的built-in指令
- 浅谈前端响应式设计(一)
- 浅谈前端响应式设计(二)
- 搭建简易的物联网服务端和客户端-redis+websocket(二十五)
- Angularjs下拉联动(2)
- 大数据开发平台(Data Platform)在有赞的最佳实践
- 【LeetCode两题选手】算法类题目(8.7)