【软件测试】Requests库中处理cookie的几种方式_request中表示cookie安全的操作

47 阅读2分钟

img img img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

开源项目:docs.qq.com/doc/DSlVlZExWQ0FRSE9H

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添加到请求中


结果:发表留言成功


![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/210d72f8421f46b4888fb889bf831ace~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1770527191&x-signature=FGkF2ZIBZi6KtI1TFGZ%2BjmC%2FUaE%3D)


## 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) #发送留言请求


结果:发表留言成功


![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/3e90b39b4a1241fabe6962bcc3fe4898~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1770527191&x-signature=lBS3VBlltLg0UuHn2bruj33uddo%3D)


## 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) #发送留言请求


结果:发表留言成功


![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/14d0d53aaf714d22950f03829c728d3c~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1770527191&x-signature=tZB9uxBV5e2jjopmHL3BTHPbnMA%3D)


## 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,自动关联


结果:发表留言成功


![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/32d6479d2b6e4a13a639f7da39ba88ea~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1770527191&x-signature=qedfc49nDZw5u%2BWz%2BBQ5BJBwwIQ%3D)
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/0d758d1184a84a79a54789186ca29c65~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1770527191&x-signature=XhUiY4oxl%2Bb0V8KZCtMKFPdlt8M%3D)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**了解详情》docs.qq.com/doc/DSlVlZExWQ0FRSE9H**