当前位置: 首页 > news >正文

接口测试 —— 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"
}
"""
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

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你可以设置请求时间,如果超过这个时间变自行结束请求,可以利用此判断请求代理的相应效率,避免在某些错误请求上浪费过多的时间

END今天的分享到此结束了~

相关文章:

  • order by数据过多引起的cpu飙升
  • Web:探索 SpreadJS强大的在线电子表格库
  • 云原生之深入解析如何合并多个kubeconfig文件
  • Linux下protobuf和 protobuf-c安装使用
  • IP地址与代理ip在网络安全中的关键作用
  • Autojs 利用OpenCV识别棋子之天天象棋你马没了
  • Spigot 通过 BuildTools 构建 MineCraft Spigot 官方服务端文件
  • 代码随想录算法训练营第3天| 203.移除链表元素 、 707.设计链表 、 206.反转链表
  • 【Acwing167】木棒(dfs+剪枝)超级详细题解!
  • 【数据库】组合查询 UNION
  • Spring Cloud之微服务
  • 微信小程序笔记功能(富文本editor功能)开发
  • 一文拿捏内网穿透利器之frp(反向代理软件相关)
  • Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)
  • Kafka - 深入了解Kafka基础架构:Kafka的基本概念
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 30天自制操作系统-2
  • Angularjs之国际化
  • Consul Config 使用Git做版本控制的实现
  • DOM的那些事
  • Hibernate最全面试题
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • nodejs实现webservice问题总结
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Ruby 2.x 源代码分析:扩展 概述
  • underscore源码剖析之整体架构
  • windows下使用nginx调试简介
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 离散点最小(凸)包围边界查找
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 区块链分支循环
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 三栏布局总结
  • 双管齐下,VMware的容器新战略
  • 微信小程序:实现悬浮返回和分享按钮
  • 写给高年级小学生看的《Bash 指南》
  • 移动端唤起键盘时取消position:fixed定位
  • 数据可视化之下发图实践
  • ​Java并发新构件之Exchanger
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #include<初见C语言之指针(5)>
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (C++)八皇后问题
  • (C语言)字符分类函数
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (三)Honghu Cloud云架构一定时调度平台
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境