python获取Set-Cookies中的JSESSIONID值

在Python接口自动化测试中,遇到使用requests库获取登录请求后的cookie时,直接通过`res.cookies`无法获取。解决方法是创建session会话,然后通过`session.cookies`获取。但直接获取得到的是RequestsCookieJar对象,需要使用`requests.utils.dict_from_cookiejar`转换为字典形式便于提取。本文详细介绍了这个问题及解决方案。
部署运行你感兴趣的模型镜像

最近重新梳理python接口自动化测试,遇到了一个问题。
发送登录请求后,用requests.cookie获取不到cookie,如图:
在这里插入图片描述

#通过requests发送请求
res = requests.get(url=url,headers=headers)
print("获取状态码:",res.status_code)
print("获取headers:",res.headers)
# print("获取body:",res.text)
print(res.cookies)

结果:
在这里插入图片描述
直接拿res.cookie是获取不到的

需要通过创建session会话来进行获取

# 通过创建session会话请求后获取
session = requests.session()
session.get(url=url,headers=headers)

直接使用session.cookies获取的是这种:这种不利于提取cookie

print("直接获取cookie:",session.cookies,type(session.cookies))
# 结果:
<RequestsCookieJar[<Cookie userInfoCookie= for 192.168.2.102/>, <Cookie JSESSIONID=C5A2BC3120C529FF25F22EF046AD8DE6 for 192.168.2.102/recruit.students>]> <class 'requests.cookies.RequestsCookieJar'>

需要使用requests.utils.dict_from_cookiejar进行获取

cookie = requests.utils.dict_from_cookiejar(session.cookies)
print("通过utils.dict_from_cookiejar获取cookie:",cookie['JSESSIONID'])
# 结果
通过utils.dict_from_cookiejar获取cookie: C5A2BC3120C529FF25F22EF046AD8DE6

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值