『居善地』接口测试 — 4、Requests库发送GET请求
Requests库GET请求是使用HTTP协议中的GET请求方式对目标网站发起请求。
(不带参数的GET请求请看上一篇文章的练习)
1、使用Requests库发送带参数的GET请求
使用Get请求方式发送带参数请求时,是params=参数字典,而不是data=参数字典。data=参数字典是Post请求方式的参数形式。
"""
1.学习目标
必须掌握requests中带参数的get请求
2.语法
requests.get(url,parmas=None)
2.1 不带参数的get请求(看上一篇中的练习)
2.2 带参数的get请求(如下)
3.操作步骤
# 1.导入requests库
# 2.明确请求地址
# 3.明确请求参数
data = {key:value} 字典格式
# 4.发送请求获取返回数据
4.需求
使用requests库发送一个带参数的get请求
"""
# 1.导入requests库
import json
import requests
# 2.明确请求地址
url = "http://127.0.0.1:8000/api/departments/"
# 3.明确请求参数
# 是一个字典类型数据
data = {"$dep_id_list": "10,11"}
# 4.发送请求
response = requests.get(url=url, params=data)
# print(response.json())
# 将python对象转换为json字符串(格式化放回数据)
result = json.dumps(response.json(), indent=2, ensure_ascii=False)
# print(type(result)) # 字符串类型
print(result)
"""
结果:
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"dep_id": "10",
"dep_name": "超神_10",
"master_name": "陆兴雷_10",
"slogan": "带头学习"
},
{
"dep_id": "11",
"dep_name": "超神_11",
"master_name": "陆兴雷_11",
"slogan": "带头学习"
}
]
}
"""
2、查看GET请求的内容
我们可以通过访问Httpbin来查看或者调试Requests库发送请求的内容。
还是以上面的例子为例:
# 1.导入requests库
import json
import requests
# 2.明确请求地址
# url = "http://127.0.0.1:8000/api/departments/"
url = "http://127.0.0.1:9999/get"
# 3.明确请求参数
# 是一个字典类型数据
data = {"$dep_id_list": "10,11"}
# 4.发送请求
response = requests.get(url=url, params=data)
# 这种方式调用也可以
# response = requests.get(url='http://httpbin.org/get?name=admin&age=20')
# print(response.json())
# 将python对象转换为json字符串(格式化放回数据)
result = json.dumps(response.json(), indent=2, ensure_ascii=False)
# print(type(result)) # 字符串类型
print(result)
"""
接口返回结果:
{
"args": {
"$dep_id_list": "10,11"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "keep-alive",
"Host": "127.0.0.1:9999",
"User-Agent": "python-requests/2.18.4"
},
"origin": "127.0.0.1",
"url": "http://127.0.0.1:9999/get?%24dep_id_list=10%2C11"
}
我们可以看到args属性中有参数内容,
如果是不带参数的Get请求,args属性中是没有内容的,如下:
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "keep-alive",
"Host": "127.0.0.1:9999",
"User-Agent": "python-requests/2.18.4"
},
"origin": "127.0.0.1",
"url": "http://127.0.0.1:9999/get"
}
"""
3、带请求头、参数的Get请求
例如上面例子中,请求头信息中 "User-Agent": "python-requests/2.18.4",我们需要改变请求头中User-Agent属性的内容,看下面例子:
# 1.导入requests库
import json
import requests
# 2.明确请求地址
# url = "http://127.0.0.1:8000/api/departments/"
url = "http://127.0.0.1:9999/get"
# 3.明确请求参数
# 是一个字典类型数据
data = {"$dep_id_list": "10,11"}
# 明确请求头信息
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"}
# 4.发送请求
response = requests.get(url=url, params=data, headers=headers)
# print(response.json())
# 将python对象转换为json字符串(格式化放回数据)
result = json.dumps(response.json(), indent=2, ensure_ascii=False)
# print(type(result)) # 字符串类型
print(result)
"""
接口返回结果:可以看到User-Agent属性变成了我们设置的内容了。
{
"args": {
"$dep_id_list": "10,11"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "keep-alive",
"Host": "127.0.0.1:9999",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"
},
"origin": "127.0.0.1",
"url": "http://127.0.0.1:9999/get?%24dep_id_list=10%2C11"
}
"""
除此之外Get请求还有很多请求参数,如timeout你可以设置请求时间,如果超过这个时间变自行结束请求,可以利用此判断请求代理的相应效率,避免在某些错误请求上浪费过多的时间。
『居善地』接口测试 — 4、Requests库发送GET请求的更多相关文章
- 『居善地』接口测试 — 5、使用Requests库发送POST请求
目录 1.请求正文是application/x-www-form-urlencoded 2.请求正文是raw (1)json格式文本(application/json) (2)xml格式文本(text ...
- 『居善地』接口测试 — 3、Requests库介绍
目录 1.Requests库 2.Requests库文档 3.Requests库安装 4.Requests库的使用 (1)使用步骤 (2)示例练习 5.补充:Json数据和Python对象互相转化 1 ...
- 『居善地』接口测试 — 7、Requests库使用proxies代理发送请求
目录 1.代理的了解 2.代理的分类 (1)正向代理 (2)反向代理 (3)总结 3.Requests库使用代理 4.总结 1.代理的了解 在上图中我们可以把Web server看成是Google服务 ...
- 『居善地』接口测试 — 6、Httpbin服务介绍
目录 1.Httpbin服务介绍 2.在Windows系统中部署Httpbin服务 3.在Linux系统中部署Httpbin服务 4.Httpbin访问方式 5.Httpbin常用调试接口 6.总结: ...
- 『居善地』接口测试 — 13、Moco框架的使用
目录 1.Moco框架第一个练习 2.Get方法的Mock实现 3.Post方法的Mock实现 4.请求中加入Cookies 5.请求中加入Header 6.Moco模拟重定向 7.综合练习 8.总结 ...
- 『居善地』接口测试 — 12、Moco框架介绍
目录 1.Mock功能介绍 2.Moco框架介绍 3.Moco框架在接口测试中的作用 4.Moco框架的优点 5.Moco框架的下载与启动 (1)Moco框架的下载 (2)Moco框架的启动 1.Mo ...
- 『居善地』接口测试 — 11、接口签名sign原理
目录 1.什么是加密以及解密? 2.加密方式的分类 (1)对称加密 (2)非对称加密 (3)总结: 3.接口签名sign原理 (1)什么是接口签名? (2)为什么需要做接口签名 (3)接口签名的实践方 ...
- Python接口测试-使用requests模块发送GET请求
本篇主要记录下使用python的requests模块发送GET请求的实现代码. 向服务器发送get请求:无参数时:r = requests.get(url)带params时:r = requests. ...
- Python接口测试-使用requests模块发送post请求
本篇主要记录下使用python的requests模块发送post请求的实现代码. #coding=utf-8 import unittest import requests class PostTes ...
随机推荐
- python创建一个二维列表
方法一:利用for-in语句来生成一个二维列表 a = [] 2 for i in range(10): 3 a.append([]) 4 for j in range(10): 5 a[i].app ...
- 攻防世界 reverse easy_Maze
easy_Maze 从题目可得知是简单的迷宫问题 int __cdecl main(int argc, const char **argv, const char **envp) { __int64 ...
- 用pyqt5做一个简易的音乐播放器
需求 要求可以读取音频文档,有播放和暂停的功能 附上代码(1)UI界面 # -*- coding: utf-8 -*- # Form implementation generated from rea ...
- 计算机体系结构——CH2 指令系统
CH2 指令系统 右键点击查看图像,查看清晰图像 X-mind CH2 指令系统 数据表示 定义 指计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型 确定哪些数据类型用哪些数据表示实现,是 ...
- Kubernetes,kubectl常用命令详解
kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kub ...
- kiali的服务降级和暗隐的有关问题
记录两个问题 1. 服务在kiali的Applications 和 Workloads 显示为降级状态 2. 服务已经删除后在kiali的 Graph 显示依然存在 前言 istio部署到预发集群后, ...
- 常见SQL命令总结学习 -- <1>
SQL学习网练习记录 参考1:http://sample.jimstone.com.cn/xsql/Course/4.html 参考2:http://sample.jimstone.com.cn/xs ...
- 高精度减法(c++)
高精度减法 每当要进行精度较高的运算时,就要用到高精度. 下图是各个类型的数值范围: 如果想不起各个类型占多少字节,可以采用下面的方法: printf("%d %d",sizeof ...
- 前端 JS 原生 javascript 和 location.hash 实现一个单页应用的路由 router
开篇日常立个flag-- 前言 最近在做一些应用,类似于单页应用,想实现类似于 Vue 路由的效果. 但是个人 Vue 基础四舍五入约等于无,而且看着 Vue-router 吃力+用不起来(因为我的项 ...
- 全网最清楚的:MySQL的insert buffer和change buffer 串讲
目录 一.前言 二.问题引入 2.1.聚簇索引 2.2.普通索引 三.change buffer存在的意义 四.再看change buffer 五.change buffer 的限制 六.change ...