【软件测试】Requests库中处理cookie的几种方式

news2024/11/26 10:46:13

前言

发送请求时经常需要利用请求头中的cookie字段来做用户访问状态的保持,关于的cookie的处理常见有下面一些处理方式,这里做个小小的总结

1.直接在请求中传递cookies参数

import requests

host = 'http://119.91.144.93:82'
api = r'/ecshop/user.php'
url = host + api

data = {'username':'wangke','password':'123456','act':'act_login','back_act':'./index.php','submit':None}
res = requests.request('POST',url=url,data=data) #登录
cookies = res.cookies #获取登录cookies
data1 = {'msg_type':0,'msg_title':'aaaaaaa','msg_content':'1111111111','act':'act_add_message'}
r = requests.request('POST',url=url,data=data1,cookies=cookies) #发表留言,直接将获取的登录cookies添加到请求中

结果:发表留言成功

2.将获取的登录cookie添加到headers中

import requests

host = 'http://119.91.144.93:82'
api = r'/ecshop/user.php'
url = host + api

data = {'username':'wangke','password':'123456','act':'act_login','back_act':'./index.php','submit':None}
res = requests.request('POST',url=url,data=data) #登录
cookies = res.cookies #获取登录cookies

cookies_str  = '' #将获取的登录cookies拼接为字符串
for k,v in cookies.items():
    cookies_str += f'{k}={v};' #key=value;的方式拼接
headers = {'cookie':cookies_str} #组装headers

data1 = {'msg_type':0,'msg_title':'bbbbb','msg_content':'22222','act':'act_add_message'}
r = requests.request('POST',url=url,data=data1,headers=headers) #发送留言请求

结果:发表留言成功

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

3.通过RequestsCookieJar构造cookies

import requests

host = 'http://119.91.144.93:82'
api = r'/ecshop/user.php'
url = host + api

data = {'username':'wangke','password':'123456','act':'act_login','back_act':'./index.php','submit':None}
res = requests.request('POST',url=url,data=data) #登录
cookies = res.cookies #获取登录cookies

jar = requests.cookies.RequestsCookieJar() #创建RequestsCookieJar对象
for k,v in cookies.items():
    jar.set(k,v) #通过RequestsCookieJar对象构造cookies


data1 = {'msg_type':0,'msg_title':'cccccc','msg_content':'33333','act':'act_add_message'}
r = requests.request('POST',url=url,data=data1,cookies=jar) #发送留言请求

结果:发表留言成功

4.通过session会话处理

import requests

host = 'http://119.91.144.93:82'
api = r'/ecshop/user.php'
url = host + api

s = requests.session() #创建会话s
data = {'username':'wangke','password':'123456','act':'act_login','back_act':'./index.php','submit':None}
res = s.request('POST',url=url,data=data) #通过会话发送登录请求

data1 = {'msg_type':0,'msg_title':'dddddd','msg_content':'44444','act':'act_add_message'}
r = s.request('POST',url=url,data=data1) #通过会话发送留言请求,不需要处理cookie,自动关联

结果:发表留言成功


敲字不易,如果此文章对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

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

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

相关文章

一文深入理解高并发服务器性能优化

我们现在已经搞定了 C10K并发连接问题 ,升级一下,如何支持千万级的并发连接?你可能说,这不可能。你说错了,现在的系统可以支持千万级的并发连接,只不过所使用的那些激进的技术,并不为人所熟悉。…

Electron基础学习笔记

Electron基础学习笔记 官网: https://www.electronjs.org/ 文档:https://www.electronjs.org/zh/docs/latest/ Electon概述 Electron 是由 Github开发的开源框架它允许开发者使用Web技术构建跨平台的桌面应用 Electron Chromium Node.js Native AP…

基于IDEA 配置Maven环境和JDK版本(全局)

1.首先启动IDEA,进去初始界面 选择 Customize 之后,选择 All settings 2. 选择下图中的列表配置 3. 找到Maven下的Runner, 配置JRE的版本,选择自己下载使用的jdk的版本即可 4.最后配置Compiler 下的 Java Compiler 选择自己的jdk版本号&am…

将Excel表中数据导入MySQL数据库

1、准备好Excel表: 2、数据库建表case2 字段信息与表格对应建表: 3、实现代码 import pymysql import pandas as pd import openpyxl 从excel表里读取数据后,再存入到mysql数据库。 需要安装openpyxl pip install openpyxl# 读入数据&#x…

构建智能工厂设施的“智能电机保护和信息监控解决方案”

施耐德电气新推出了“智能电机保护与信息监控解决方案”,这是一个智能工厂设施建设和数字化的集成解决方案包。 进入数字化转型时代,行业最大的话题无疑是“智能工厂”。 智能工厂的字面意思是“真正的智能工厂”。 是指通过物联网(IoT&…

【每日一句】只出现一次的数

文章目录 Tag题目来源题目解读解题思路方法一:位运算 其他语言Cpython3 写在最后 Tag 【位运算-异或和】【数组】【2023-10-14】 题目来源 136. 只出现一次的数字 题目解读 给你一个数组,找出数组中只出现一次的元素。题目保证仅有一个元素出现一次&a…

ChatGPT,AIGC 制作按年份选择的动态条形图

在数据分析与可视化中,条形图是用来进行对比分析,在正负条形图中都有哪些好处与优点呢? 正负条形图是一种常用的数据可视化方式,它的优点和好处包括: 1.明确展示:正负条形图可以清晰地显示出数据中的正负差异,使读者能直观地看出数据的变化和趋势。 2.直观比较:正负条…

【设计模式】十、组合模式

文章目录 案例组合模式基本介绍类图代码 组合模式在 JDK 集合的源码分析组合模式的注意事项和细节 案例 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如…

Unity 3D基础——计算两个物体之间的距离

1.在场景中新建两个 Cube 立方体,在 Scene 视图中将两个 Cude的位置错开。 2.新建 C# 脚本 Distance.cs(写完记得保存) using System.Collections; using System.Collections.Generic; using UnityEngine;public class Distance : MonoBehav…

RISC-V 特权级架构

特权级别 级别的数值越大,特权级越高,掌控硬件的能力越强,在CPU硬件层面,M模式必须存在,其它模式可以不存在 执行环境调用 ecall ,这是一种很特殊的陷入类的指令, 相邻两特权级软件之间的接口正…

从零开始学习调用百度地图网页API:一、注册百度地图账号

目录 注册账号申请AK 注册账号 https://lbsyun.baidu.com/index.php?titlejspopular3.0/guide/getkey JavaScript API只支持浏览器类型的ak 申请AK 注:使用示例时,需要在百度地图示例加上https:,替换ak。

UE4 顶点网格动画播放后渲染模糊问题

问题描述:ABC格式的顶点网格动画播放结束后,改模型看起来显得很模糊有抖动的样子 解决办法:关闭逐骨骼动态模糊

python+opencv+机器学习车牌识别 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器学习的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖,适…

Excel——对其他工作表和工作簿的引用

一、引用其他sheet页表区域 若希望在公式中引用其他工作表的单元格区域,可以在公式编辑状态下,通过鼠标单击相应的工作表标签,然后选择相应的单元格区域。 例1 跨sheet页引用其他工作表区域 如图1所示的工作表Sheet2为工资表。 在Sheet1表…

一文了解VR全景拍摄与后期制作

引言: VR(Virtual Reality)全景拍摄和后期制作一直是创作VR全景作品的基础,它不仅改变了我们的视觉体验,还为企业和创作者提供了更多机遇。 一.什么是VR全景拍摄? VR全景拍摄是一种新兴的拍摄…

pycharm连接gitlab

1、下载安装gitlab 下载地址:Git - Downloading Package 下载后傻瓜式安装,注意勾选配置环境变量 未配置自己配置,电脑-属性-高级系统配置-环境变量 系统变量path:添加git安装目录下bin目录 2、检验安装完成 桌面右键git-open…

NPM 常用命令(十二)

目录 1、npm unpublish 1.1 使用语法 1.2 描述 2、npm unstar 2.1 使用语法 3、npm update 3.1 使用语法 3.2 描述 3.3 示例 插入符号依赖 波浪号依赖 低于 1.0.0 的插入符号依赖 子依赖 更新全局安装的包 4、npm version 4.1 使用语法 5、npm view 5.1 使用语…

【yolov5】改进系列——特征图可视化(V7.0 的一个小bug)

文章目录 前言一、特征图可视化1.1 V7.0的小bug 二、可视化指定层三、合并通道可视化总结 前言 对于特征图可视化感兴趣可以参考我的另一篇记录:六行代码实现:特征图提取与特征图可视化,可以实现分类网络的特征图可视化 最近忙论文&#xf…

BAT023:将当前目录同名文件(不包括扩展名)整理到以其命名的文件夹内

引言:编写批处理程序,实现将当前目录同名文件(不包括扩展名)整理到以其命名的文件夹内。 一、新建Windows批处理文件 参考博客: CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.…

(echarts)热度图封装相关总结及使用

(echarts)热度图封装相关总结及使用 一、封装组件heatChart.vue <template><div :id"id" :class"className" :style"{ height: height, width: width }" /> </template><script> import echarts from "echarts&quo…