接口测试 —— Requests库GET请求

2023-11-15

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

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口测试 —— Requests库GET请求 的相关文章

随机推荐

  • .NET6: 开发基于WPF的摩登三维工业软件 (7)

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 做为一个摩登的
  • MyBatis中JdbcType与Oracle、MySql数据类型对应关系详解

    转自 MyBatis中JdbcType与Oracle MySql数据类型对应关系详解 MyBatis 是一款优秀的持久层框架 它支持定制化 SQL 存储过程以及高级映射 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取
  • 我不需要你喜欢我

    绩效考核又开始了 大家心里都在盘算着 老大这次会给我能打多少分呢 大家各有各的心情 有人想得到肯定 也有人在想能不能过关 下面这样的场景一次又一次地在上演 场景1 在主管会议上 部门领导有些不开心地说 你们怎么打的分 A 严重超标啦 怎么没
  • Autosar软件架构

    软件架构 应用层通过 Simulink模型实现 模型的代码生成使用统一配置脚本 底层软件模块满足AUTOSAR 4 2 1标准要求 其软件架构如下图所示 软件架构 2 2 2 Com通信模块配置 BCU通过唤醒信号控制相应CAN消息的通信使
  • Vue.js 最新官方下载地址与项目导入

    目录 VUE2下载网址 VUE2使用示例 VUE3下载与使用 VUE3示例 在官网上下载vue js或者是vue min js 并用
  • shell学习笔记(3)grep -v grep

    网上查阅shell定时脚本相关代码 其中有一句grep v grep awk awk print 2 不是很理解 基础知识太薄弱 pid ps ef grep run jar grep v grep awk print 2 经查阅资料 gr
  • 【零基础 快速学Java】韩顺平 p87-101 四种进制及其相互转换、二进制运算(原码、补码、反码)、7种位运算符

    课程 p87 101 四种进制介绍 小总结 二进制0b开头 八进制0开头 十六进制0x开头 进制字母不区分大小写 直接输出十进制 如 public class temp public static void main String args
  • c++去掉多余空格

    题目 输入一个字符串 字符串中可能包含多个连续的空格 请将多余的空格去掉 只留下一个空格 输入格式 共一行 包含一个字符串 输出格式 输出去掉多余空格后的字符串 占一行 数据范围 输入字符串的长度不超过 200200 保证输入字符串的开头和
  • 什么是价值流图 (Value Stream)?示例汇总

    价值流图 VSM 是一种精益制造技术 用于分析 设计和管理将产品带给客户所需的材料和信息流 它使用标准符号系统来描述各种工作流和信息流 项目被映射为添加值或不从客户的角度添加值 目的是根除不增加价值的项目 值流映射可用于改进可重复步骤的任何
  • 前端这一刻我悟了

    早上没事 在回顾react的时候 突然悟了 发现vue 还是react组件化开发 父组件套子组件 父子组件之间相互通信 写页面样式 逻辑 发送服务器请求 学习主要学的是语法 这些语法写个两三遍就都会了 还真是代码搬运工 再就是代码写的漂亮点
  • vue项目中Echarts图表完整引入、按需加载以及修改主题色

    一 完整引入Echarts 下载安装echarts包 npm install echarts S or yarn add echarts 定义图表显示的容器 并进行渲染
  • 项目资源管理

    目录 申明 1 核心概念 2 虚拟团队 分布式团队 3 规划质量管理 3 1 1 输入 3 1 2 工具和技术 3 1 2 1 责任分配矩阵 3 1 3 输出 4 估算活动资源 4 1 1 输入 4 1 2 工具与技术 4 1 3 输出 4
  • git常用操作指令手册、持续更新....

    一 拉取远程代码到本地流程 1 新建文件夹 git bash here 初始化本地仓库 git init 2 和远程仓库建立连接 git remote add origin 远程地址 3 获取远程分支最新状态 git fetch origi
  • gitee删除远程仓库

    1 登录自己的gitee 2 点击仓库进行选择要删除的仓库 4 进入要删除的仓库 5 在导航栏中点击管理 强调在导航中就有了 6 在左侧的仓库设置中 再点击删除仓库 右侧删除仓库的内容浮现 7 点击删除仓库 点击确认删除 要记得输入gite
  • 【Python 1-7】Python手把手教程之——详解列表List

    列表 作者 弗拉德 来源 弗拉德 公众号 fulade me 列表 在其他语言中又被称为数组 是由一系列按特定顺序排列的元素组成 你可以创建包含字母表中所有字母 数字0 9或所有家庭成员姓名的列表 你也可以创建几个列表 把这几个列表又放在一
  • qvboxlayout布局背景色怎么设置_QT开发(二十一)——QT布局管理器

    一 布局管理器简介 QT中使用绝对定位的布局方式无法自适应窗口的变化 QT中提供了对界面组件进行布局管理的类 用于对界面组件进行管理 能够自动排列窗口中的界面组件 窗口大小变化后自动更新界面组件的大小 QLayout是QT中布局管理器的抽象
  • 西门子200SMART笔记

    第一章 PLC概述 上位机 控件库 HslControls SunnyUI 初级课程 传感器接线方式 棕色 BN 蓝色 BL 黑色 BK 信号线 NPN型 1M M 接 24V PNP型 1M M 接 0V PLC输出接线 电路图 gt 梯
  • 部队脱文档水印软件_网上下载的Word文档有水印?4种方法教你快速去水印!!...

    Hello 各位叨友们好呀 我是叨叨君 我们在网上查找资料下载文档的时候 经常会遇到一些带有水印的文件 那么该怎么把水印去除呢 今天就教大家如何快速去除Word PDF文件中的水印 方法一 设置无水印 打开word文档 点击 设计 工具 再
  • Jquery中$(function(){})

    1 在哪书写js文件 如果我们要执行一段js代码 我们该怎么办呢 1 我们可以写一个js文件 在js文件里写执行函数 然后再 进行引用 2 我们可以直接在HTML页面下 插入脚本 同样是 两种方式没什么区别 唯一的区别就是程序的解耦 所以当
  • 接口测试 —— Requests库GET请求

    Requests库GET请求是使用HTTP协议中的GET请求方式对目标网站发起请求 不带参数的GET请求请看上一篇文章的练习 1 Requests库待参数的GET请求 使用Get方法带参数请求时 是params 参数字典 而不是data 参