接口测试 23 requests基础入门二
时间:2022-05-07
本文章向大家介绍接口测试 23 requests基础入门二,主要内容包括请求头定制示例、POST请求示例、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
概述
继续requests基础分享,本文主要分享以下内容:
- 请求头定制
- POST请求
请求头定制示例
在requests中想要为请求添加自定义头信息,只需要简单的传入一个dict(即python字典类型对象)即可。
下面我们看一个简单的示例:
#-*- coding:utf-8 -*-__author__ = "苦叶子"# 导入模块import requestsif __name__ == "__main__":
print("开源优测 - requests自定义请求头基本示例")
url = "http://www.baidu.com"
# 定义自定义请求头数据
headers = { "user-agent": "www.testingunion.com", "custom-head": "DeepTest"
} # 发送带自定义头的请求
r = requests.get(url, headers=headers)
将上述代码保存至requests_headers_demo.py中,执行以下命令:
注:所有的header值必须是string、bytestring或unicode,虽然传递unicode header是允许的,但不建议这样做
python requests_headers_demo.py
在运行上述命令前,先启动wireshark,用来抓取报文,看下我们自定义的headers是否正常被设置。
抓取的报文如下:
从报文来看,我们的设置是成功的,这说明了requests的机制是多么的简洁有效。
POST请求示例
下面我们看看requests如何发送HTTP POST请求的。
基本示例
#-*- coding:utf-8 -*-
__author__ = "苦叶子"
import requests
if __name__ == "__main__":
print("requests post示例")
# 目标url
url = "http://httpbin.org/post"
# 请求头headers
headers = {"custom-header": "mypost"}
# 要post的数据
data = {"data_1": "deeptest", "data_2": "testingunion.com"}
# 发送post请求
r = requests.post(url, data=data, headers=headers)
# 输出结果
print(r.text)
将上述代码保存到requests_post_demo.py中,执行下述命令运行:
python requests_post_demo.py
用wireshark抓取上述自定义了header和data的报文如下:
post json数据示例
下面我们看看如何postjson数据到服务。
#-*- coding:utf-8 -*-
__author__ = "苦叶子"
import requests
if __name__ == "__main__":
print("requests post json数据示例")
# 目标服务url
url = "http://jsonplaceholder.typicode.com/posts"
# 自定义头
headers = {
"custom-post": "my-post",
"custom-header": "my-json-header"
}
# 要post的数据
json_data = {
"title": "deeptest",
"body": "开源优测",
"userId": "1"
}
# post json格式的数据
r = requests.post(url, json=json_data, headers=headers)
# 打印下返回结果
print(r.text)
将上述代码保存到requests_post_json_demo.py中,执行下述命令运行:
python requests_post_json_demo.py
对上述代码执行,使用wireshark对http报文进行抓包如下:
- 试试Linux下的ip命令
- hdu---(2604)Queuing(矩阵快速幂)
- centos7下卸载python后yum不能使用的恢复方法
- hdu---(5038)Grade(胡搞)
- shell生成随机字符的几种方法
- Python时间获取及转换
- spark streaming知识总结[优化]
- 让你真正明白spark streaming
- Centos7 firewalld防火墙基本操作
- Spark Sql系统入门4:spark应用程序中使用spark sql
- Flume+Kafka收集Docker容器内分布式日志应用实践
- CentOS7搭建ELK日志集中分析平台
- Centos安装sshfs实现挂载目录
- shell脚本监控磁盘使用率
- 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 数组属性和方法
- 详解PHP队列的实现
- PHP lcfirst()函数定义与用法
- Qt音视频开发38-USB摄像头解码linux方案
- python3 简单实现组合设计模式
- 基于django2.2连oracle11g解决版本冲突的问题
- 浅谈php使用curl模拟多线程发送请求
- PHP模型Model类封装数据库操作示例
- 解决django migrate报错ORA-02000: missing ALWAYS keyword
- PHP封装的数据库模型Model类完整示例【基于PDO】
- PHP的简单跳转提示的实现详解
- PHP多进程通信-消息队列使用
- PHP implode()函数用法讲解
- PHP精确到毫秒秒杀倒计时实例详解
- django 装饰器 检测登录状态操作
- 使用PyWeChatSpy自动回复微信拍一拍功能的实现代码