Python教程

解决Python中requests库的session无法保存cookie的问题

本文主要是介绍解决Python中requests库的session无法保存cookie的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  当我们在使用Python的requests库做接口自动化时,我们都知道只要使用session = requests.session()就会自动保存cookie
  但当我在做公司的接口自动化项目时,发现保存的cookie不生效,通过请求登录接口后打印cookie,又发现有cookie,这里就是我比较头大了o(╥﹏╥)o
  查找多方资料后,终于找到了原因,原来requests只能保持 cookiejar 类型的cookie,而我们手动构建的cookie是dict类型的。所以我们需要把dict转为 cookiejar类型,转换方式如下:

# 将CookieJar转为字典:
cookies_dict = requests.utils.dict_from_cookiejar(resp.cookies)

# 将字典转为CookieJar:
cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
# 其中cookie_dict是要转换字典

# 转换完之后就可以把它赋给cookies 并传入到session中了:
session = requests.Session()
session.cookies = cookies

  实际使用时需要观察cookie格式,比如我们公司目前是将cookie以key-value的形式放在请求头中,所以我这里的处理方式是将cookie转为字典,然后将字典里的内容拼接为字符串。

这篇关于解决Python中requests库的session无法保存cookie的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!