接口测试 —— requests 的基本了解

● requests介绍及安装
● requests原理及源码介绍
● 使用requests发送请求
● 使用requests处理响应
● get请求参数
● 发送post请求参数
● 请求header设置
● cookie的处理
● https证书的处理
● 文件上传、下载
requests介绍
● requests是python第三方的HTTP模块库。
● 它基于urllib,又比urllib更加简单高效。
● 支持Get、Post、Put、Delete、Head、Options等HTTP请求。
工具:jmeter,postman,soupui等
框架:robot framework等
编程:urllib,httpclient
requests安装
python编程环境准备:python3.6+pycharm
通过pip工具在线安装:
pip install requests
pip install -i https://mirrors.aliyun.com/pypi/simple/ requests
● 安装验证:
查看requests版本信息:
pip show requests
pycharm中导入模块正常:import requests
requests工作原理及源码介绍

请求方法
requests.get(url, params=None, **kwargs) # get请求
requests.post(url, data=None, json=None, **kwargs) # post请求
requests.request(method, url, **kwargs) # 通用请求
requests-get请求
get请求特点:
请求参数在url中,键值对形式。
response = requests.get(url)
response = requests.get(url, params=None)
response = requests.get(url, params=None, **kwargs)
requests-post请求
post请求特点:
请求参数在bady中,键值对形式。
response = requests.post(url, data=None)
response = requests.post(url, json=None)
response = requests.post(url, data=None, **kwargs)
▲ requests-可选参数
request请求参数:
● params:字典等类型,最终添加到请求url中的参数,
● data:字典等类型,最终添加到请求body中的参数,
● json:一个json格式的序列化的Python对象,
● headers:字典等类型,请求的header,
● cookies:字典类型,请求的cookie,
● files:字典类型,向服务器传输文件,
● auth: 元组,HTTP鉴权信息,
● verify:布尔值,是否验证server的TSL证书,
● timeout:数值,设定超时时间,
● allow_redirects:布尔值,是否运行重定向,
● stream:布尔值,响应内容是否直接下载,
▲ requests-Response对象
requests的方法会返回Response对象,即响应对象
response = requests.get(url, params=None, **kwargs) #
响应对象的属性和方法:
● response.status_code #获取响应结果码
● response.encoding #获取响应的编码格式
● response.headers #获取响应头
● response.content #获取二进制形式响应内容
● response.text #获取字符串形式响应内容
● response.json() #获取json格式响应内容
● response.url #获取请求的url
▲ requests-header参数
request请求header参数:
字典格式,可以放user-agent, cookie等内容,参考浏览器的header
发送请求时,需要带user-agent信息:
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105
Safari/537.36"}
response = requests.get(url, headers=header)
▲ requests-cookies参数
request请求cookies参数:
字典格式,可以放多个cookie数据,name:value
发送请求时,需要带cookie信息:
cookies={"ECSCP_ID":"cf306022f9f921c97ee70b907f6be4e63c96aae2"}
response = requests.get(url,cookies=cookies)
▲ requests-Session会话保持
登录后再操作,这种场景需要保持用户状态。可以通过Session类实现。
Session对象可以自动处理会话期间的Cookie,也可以通过它对整个会话做统一的设置。
se1 = Session() # 创建Session对象,自动处理
se1.post() # 先登录
se1.get() # 登录后的操作
▲ requests-files参数
files参数:
字典格式,文件上传参数,'name': file-objects或者'name': file-tuple
文件上传:
files={"file":("goods_list.csv",open("C:\\Users\\Administrator\\Desktop\\goo
ds_list.csv","rb"),"application/vnd.ms-excel")}
response = requests.get(url, files=files)
▲ requests-verify参数
request请求verify参数:
布尔值,默认是True验证TSL证书,可以设置为False不验证证书
请求走https协议时使用:
response = requests.get(url, verify=False)
▲ requests-stream参数
steam参数:
字典格式,文件下载时参数,主要针对文件比较大的情况。
steam=False,默认值,指直接下载。
steam=True,分段下载。避免立即将内容读入内存,推迟下载响应体。
文件分段下载:
with requests.post(url,data=data,stream=True) as res:
print(res.headers['content-Length'])
file1 = open("d:\\export_file.zip",mode="wb")
for chunk in res1.iter_content(512):
file1.write(chunk)
print(chunk)
file1.close()
今天的分享就到此结束了,大家还有什么不懂的可以评论区下提问哈,如果我的文章对你有所帮助的话,可以点赞三联支持一下
相关文章:
接口测试 —— requests 的基本了解
● requests介绍及安装 ● requests原理及源码介绍 ● 使用requests发送请求 ● 使用requests处理响应 ● get请求参数 ● 发送post请求参数 ● 请求header设置 ● cookie的处理 ● https证书的处理 ● 文件上传、下载 requests介绍 ● requests是python第三方的HTT…...
2023年华为杯数学建模研赛D题思路解析+代码+论文
下文包含:2023华为杯研究生数学建模竞赛(研赛)D题思路解析代码参考论文等及如何准备数学建模竞赛(22号比赛开始后逐步更新) C君将会第一时间发布选题建议、所有题目的思路解析、相关代码、参考文献、参考论文等多项资…...
AB试验(三)一次试验的规范流程
AB试验(三)一次试验的规范流程 一次完整且规范的A/B试验可参考下图: 确定目标和假设 核心:A/B测试是因果推断,所以我们首先要确定原因和结果。目标决定了结果,而假设又决定了原因。 如何确定 分析问题&am…...
ROI tracking by using OpenCV
目录 source code: source code: import cv2tracker cv2.TrackerKCF_create() video cv2.VideoCapture(1)while True:ret,frame video.read()cv2.imshow("source frame",frame)k cv2.waitKey(30)if k q:break bbox cv2.selectROI(frame, False) ok tracker.i…...
(leetcode)二叉树最大深度
个人主页:Lei宝啊 愿所有美好如期而遇 目录 题目: 思路: 代码: 图解: 题目: 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数…...
【golang】调度系列之P
调度系列 调度系列之goroutine 调度系列之m 在前面两篇中,分别介绍了G和M,当然介绍的不够全面(在写后面的文章时我也在不断地完善前面的文章,后面可能也会有更加汇总的文章来统筹介绍GMP)。但是,抛开技术细…...
Vue3中watch用法
在 Vue3 中的组合式 API 中,watch 的作用和 Vue2 中的 watch 作用是一样的,他们都是用来监听响应式状态发生变化的,当响应式状态发生变化时,都会触发一个回调函数。 当需要在数据变化时执行异步或开销较大的操作时,com…...
组里来了一个实习生,一行代码引发了一个惨案
大家好,我是静幽水,一名大厂全栈程序员,今天给大家分享一个案例,看似简单。却容易引发惨案。 事情是这样的,最近组里来了一个实习生,因为项目工作量大,人力比较紧张,所以就分配了一…...
随手笔记(四十五)——idea git冲突
图片为引用,在一次导入项目至gitee的过程中,不知道为什么报了403,很奇怪的一个错误,网上很多的答案大概分成两种。 第一种是最多的,直接找到windows凭据删掉 很抱歉的告诉各位,你们很多人到这里就已经解…...
chacha20 算法流程
chacha20算法请参看 RFC:7539。下面是我的理解,欢迎指正。 chacha20算法的基本思想:加密时,将明文数据与用户之间约定的某些数据进行异或操作,得到密文数据;由异或操作的特点可知,在解密时,只需…...
准备篇(三)Python 爬虫第三方库
第三方库无法将 "pip" 识别ModuleNotFoundError: No module named pip install 安装路径相关问题requests 库和 BeautifulSoup 库requests 库BeautifulSoup 库第三方库 Python 的 标准库 中提供了许多有用的模块和功能,如字符串处理、网络通信、多线程等,但它们并…...
从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动
从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动 文章目录 从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动一、前言1、大纲 二、VR射线移动功能实现与解析1、区域传送(1)新建 XR Orig…...
防止攥改之水印功能组件
防止攥改之水印功能组件 效果图逻辑代码 效果图 逻辑代码 <template><div class"containerBox" ref"parentRef" style"height: 300px;background-color: red;"><slot></slot></div> </template><script…...
iOS 17 适配 Xcode 15 问题
在适配 iOS 17 xcode 15时遇到的问题,记录一下。 1、 Could not build module ‘WebKit’ type argument nw_proxy_config_t (aka struct nw_proxy_config *) is neither an Objective-C object nor a block type解决方案: 选中不能编译的库的xcodep…...
Element Plus 快速开始
1.完整引入(全局引入) // main.ts import { createApp } from vue import ElementPlus from element-plus import element-plus/dist/index.css import App from ./App.vueconst app createApp(App)app.use(ElementPlus) app.mount(#app) npm install e…...
华为云云耀云服务器L实例评测|StackEdit中文版在线Markdown笔记工具
华为云云耀云服务器L实例评测|StackEdit中文版在线Markdown笔记工具 一、云耀云服务器L实例介绍1.1 云服务器介绍1.2 应用场景1.3 支持镜像 二、云耀云服务器L实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 StackEdit 中文版3.1 StackEdit 介绍3.2 环…...
MyEclipse报错javax/persistence/EntityManagerFactory
MyEclipse报错: Build path is incomplete. Cannot find class file for javax/persistence/EntityManagerFactory 解决方案: 引入依赖 <dependency><groupId>javax.persistence</groupId> <artifactId>persistence-api</a…...
【MySQL进阶】SQL性能分析
一、SQL性能分析 1.SQL执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信 息。通过如下指令,可以查看当前数据库的 INSERT 、 UPDATE 、 DELETE 、 SELECT 的访问频次: -- session 是查看当…...
在SpringBoot项目中整合SpringSession,基于Redis实现对Session的管理和事件监听
1、SpringSession简介 SpringSession是基于Spring框架的Session管理解决方案。它基于标准的Servlet容器API,提供了Session的分布式管理解决方案,支持把Session存储在多种场景下,比如内存、MongoDB、Redis等,并且能够快速集成到Spr…...
浅析vue中computed,method,watch,watchEffect的区别
方法methods只要调用每次都会执行watch(惰性)只有依赖项更新才会执行回调函数,且组件初次渲染不会执行watchEffect:自动追踪依赖变化,只要依赖更新即执行回调函数,且组件初次渲染即执行回调函数computed(惰性): 返回一个只读的ref,具有缓存功…...
终极指南:用EdgeRemover快速彻底卸载微软Edge浏览器
终极指南:用EdgeRemover快速彻底卸载微软Edge浏览器 【免费下载链接】EdgeRemover PowerShell script to remove Microsoft Edge in a non-forceful manner. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover 还在为Windows系统中无法彻底移除Micro…...
OpenClaw智能截图:nanobot自动识别图片中的文字信息
OpenClaw智能截图:nanobot自动识别图片中的文字信息 1. 为什么需要智能截图工具 在日常工作和学习中,我们经常遇到需要从图片中提取文字的场景。比如截取网页上的技术文档片段、保存会议白板上的讨论要点、或者整理纸质书籍中的关键段落。传统做法是手…...
3步打造专属游戏体验:面向MOD爱好者的整合包使用指南
3步打造专属游戏体验:面向MOD爱好者的整合包使用指南 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 你是否曾因MOD安装流程复杂而放弃尝试?面对众多版本选择时是否感到无从下…...
Python制作简易PDF查看工具——PDFViewerV1.0
PDFViewer PDF浏览工具,是使用Python语言(使用PyQt5开发界面,PDF解析使用PyMuPDF开源模块)开发的PDF查看工具,已经实现基本翻页浏览、OCR文字识别(基于开源主流文字识别模型实现)、内容查找高亮…...
asp毕业设计下载(全套源码+配套论文)——基于asp+access的办公系统设计与实现
基于aspaccess的办公系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的办公系统设计与实现,更多精选毕业设计项目实例见文末哦。 文章目录: 基于aspaccess的办公系统设计与实现(毕…...
开源项目主题系统的3大核心机制深度解析:从CSS变量到动态切换的完整实现方案
开源项目主题系统的3大核心机制深度解析:从CSS变量到动态切换的完整实现方案 【免费下载链接】vue-vben-admin vbenjs/vue-vben-admin: 是一个基于 Vue.js 和 Element UI 的后台管理系统,支持多种数据源和插件扩展。该项目提供了一个完整的后台管理系统&…...
项目介绍 MATLAB实现基于灰狼优化算法(GWO)进行无人机三维路径规划的详细项目实例(含模型描述及部分示例代码)
MATLAB实现基于灰狼优化算法(GWO)进行无人机三维路径规划的详细项目实例 更多详细内容可直接联系博主本人 或者访问以下链接地址 MATLAB实现基于灰狼优化算法(GWO)进行无人机三维路径规划的详细项目实例-CSDN博客 https://blo…...
Git 代码库中找回丢失文件的实用指南
1. 为什么Git能帮你找回丢失的代码? 作为开发者,你一定遇到过这样的场景:不小心执行了rm -rf删错了文件,或者手滑把整个功能模块给覆盖了。这时候千万别慌,Git就像个贴心的时光机,能帮你找回99%的丢失文件。…...
多租户下的系统基础表设计
多租户下的系统基础表设计在设计 多租户进销存系统(SaaS) 时,核心是 租户隔离 权限控制 组织结构。 一般推荐的设计是 “租户 → 机构 → 角色 → 用户” 的层级结构,同时所有业务数据都带 tenant_id。租户表(Tenant…...
基于NLP的计算机毕业设计智能客服助手:从零搭建到性能优化实战
背景痛点:毕业设计智能客服的常见“坑” 很多计算机专业的同学在做毕业设计时,会选择智能客服助手这个方向,因为它既贴近实际应用,又能综合运用NLP、Web开发、数据库等多门课程知识。但真正动手后,常常会遇到几个让人…...
