接口测试 —— Requests库GET请求!

news2024/12/17 8:02:30

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今天的分享到此结束了~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1140380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊云科技Amazon Lightstail(VPS)与其他主流VPS相比优势在哪里?

亚马逊云科技作为全球网络科技的一方巨擘,在全球云计算领域可谓一枝独秀。而说到云计算领域,作为入门和基础使用场景的VPS就是一个无法绕开的话题。那么亚马逊云科技又有什么样的优势呢?今天这篇文章就市面现有的VPS服务做比较,解…

MYSQL数据库的概念和sql语句

数据是什么 数:数字信息 据:属性或某种凭据 数据:对一些列对对象的具体属性的描述信息的集合。 数据库是什么 数据库:就是用来组织 (按照规则组织起来的) ,存储和管理 (对数据的增、删、改、查) 数据的仓库。 数…

【C++】set multiset

文章目录 前言1.set介绍2.set的使用3.multiset介绍4.multiset的使用 前言 知识铺垫:关联式容器和值键对概念 链接-【C】关联式容器 & 键值对(概念介绍) 1.set介绍 set文档 翻译: set是按照一定次序存储元素的容器&#xff…

2023年安全生产监管人员证考试题库及安全生产监管人员试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2023年安全生产监管人员证考试题库及安全生产监管人员试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试…

typedef复杂函数接口的解释

文章目录 typedef定义函数解释interface.h接口1、函数定义2、函数实现加载动态链接库3、sdologinentry.dll或者sdologinentry64.dll动态链接库哪个工程生成的并导出三个接口函数4、sdologinsdk.dll或者sdologinsdk64.dll动态链接库哪个工程生成并导出三个接口函数 typedef定义函…

redis爆满导致数据丢失

记一则redis爆满导致数据丢失的一场事故 某功能上线后,发现出现问题,最后定位到了 redis. 由于存储的数据过多,导致阿里云4G大小的 redis 爆满,触发了回收策略。 于是临时扩容,运维同学当时未找到阿里云配置。 后面我用工具连接了…

微服务-Feign

文章目录 Feign介绍Feign的基本使用自定义Feign的配置Feign性能优化Feign最佳实践 Feign介绍 RestTemplate远程调用存在的问题:代码可读性差,java代码中夹杂url;参数复杂很难维护 String url "http://userservice/user/" order.g…

常见MySQL数据库无法启动的解决方案

前言: 数据库无法启动是在运维中常见的问题,大多是重启服务器、磁盘损坏、配置不当导致的。建议您在面板计划任务中做个数据库全部备份的计划任务,这样在遇到问题的情况下可以及时通过备份进行恢复。 在根据下面的案例尝试恢复或者启动数据库…

dedecms 文件上传(CVE-2019-8933)

dedecms 文件上传(CVE-2019-8933) 漏洞简介 远程攻击者可通过在添加新模板时,将文件名…/index.html更改成…/index.php利用该漏洞向uploads/目录上传.php文件并执行该文件。 后台路径:/uploads/dede/ 后台密码:admi…

贪心算法学习——最大数

目录 ​编辑 一,题目 二,题目接口 三,解题思路级代码 一,题目 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大…

WEB使用百度地图展示某地地址

第一步 进入百度地图开发平台 百度地图开放平台 | 百度地图API SDK | 地图开发 第二步注册 获取AK秘钥,点击【创建应用】进入AK申请页面,填写应用名称,务必选择AK类型为“浏览器端”,JS API只支持浏览器端AK进行请求与访问 下面…

AVM赛道研究:预计2024年渗透率突破50%!下一个破局点在哪儿?

作为一个典型的基础智能化细分赛道,全景环视(AVM)的发展历程值得市场借鉴。 这其中的原因包括,①对比渗透率仍处低位的高阶智驾,单一AVM赛道的产品基本进入成熟期(渗透率继续高歌猛进)&#xf…

《算法通关村—如何基于数组(或者链表)实现栈》

《算法通关村—如何基于数组(或者链表)实现栈》 理解什么是栈 栈和队列是比较特殊的线性表,又称之为访问受限的线性表。栈是很多表达式、符号等运算的基础,也是递归的底层实现。理论上递归能做的题目栈都可以,只是有…

NLog详解

目录 1.简介 2.项目中使用NLog 2.1 快速使用NLog 2.2 通过配置文件使用NLog 3.NLog配置参数详解 3.1 全局配置 3.2 根元素 3.2.1 targets 3.2.1.1 layout 3.2.2 rules 3.2.3 extensions 3.2.4 include 3.2.5 variable 4.附录 1.简介 NLog是一个基于.NET平台编写…

【C++代码】分糖,分饼干,摇摆序列,贪心算法--代码随想录

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划。贪心算法一般分为如下四步: 将问题分解为若干个子问题找出适合的…

Shell 邮件发送告警测试

1.先编辑mail配置文件 #cat /etc/mail.rc#开启ssl set ssl-verifyignore#证书目录,下方为centos系统证书默认位置,也自行生成证书并指定 set nss-config-dir/etc/pki/nssdb# 配置的第三方smtp服务器的地址及端口 set smtpsmtps://smtp.163.com:465 # 认…

<多线程章节二>创建线程的几种常见方式

文章专栏 本篇文章收录于多线程,也欢迎翻阅博主的其他文章,可能也会让你有不一样的收获😄 💡JavaSE语法 💡数据结构 💡多线程 💡专栏导读 操作系统提供了一些API来操作线程,Java针对…

python把ChestX-Det-Dataset的json样本转为COCO数据集的json格式

ChestX-Det-Dataset数据集网址:https://github.com/Deepwise-AILab/ChestX-Det-Dataset/tree/main 数据集JSON内容: [{"file_name": "36199.png","syms": [],"boxes": [],"polygons": []},{"f…

分享一下怎么做陪诊小程序

在当今快节奏的社会中,人们的生活压力越来越大,尤其是在大城市中,由于工作繁忙,生活节奏快,很多人都感到看病难、看病贵的问题。为了解决这一问题,陪诊小程序应运而生。陪诊小程序是一种可以提供线上预约、…

基于SSM民宿预订及个性化服务系统-计算机毕设 附源码 04846

SSM民宿预订及个性化服务系统 摘 要 伴随着国内旅游经济的迅猛发展民宿住宿行在国内也迎来了前所未有的发展机遇。传统的旅游模式已难以满足游客日益多元化的需求,随着人们外出度假的时间越来越长,导致人们在住宿的选择上更加追求舒适、个性化的住宿体验…