解决 requests cookies 为空的坑
2024-09-08 19:03:32
转载请注明出处️
作者:测试蔡坨坨
原文链接:caituotuo.top/5d14f0d7.html
你好,我是测试蔡坨坨。
我们在做接口自动化测试的时候,一般会通过调用登录接口来获取cookies。
有时候,requests 返回的 cookies 会为空,原因是因为链接发生了 301/302 重定向跳转,而 cookies 是跟着第一个响应返回的,第二个响应没有返回 Set-Cookie header。所以直接读取 r.cookies 就是空的,但是在 session.cookies 中是有数据的。
这里提供两种解决方案。
方法1 关闭重定向
在请求参数中加入"allow_redirects": False
关闭重定向。
def login(self):
req = {
"url": self.url + "/passport/login",
"method": "post",
"data": {
"username": self.username,
"password": self.password
},
"allow_redirects": False # 关闭重定向
}
res = requests.request(**req)
cookie_jar = res.cookies
print(cookie_jar)
cookie = requests.utils.dict_from_cookiejar(cookie_jar)
print(cookie)
方法2 直接读 s.cookies
def login(self):
url = self.url + "/passport/login"
data = {
"username": self.username,
"password": self.password
}
s = requests.Session()
s.post(url=url, data=data)
cookie_jar = s.cookies
print(cookie_jar)
cookies = requests.utils.dict_from_cookiejar(cookie_jar)
s.cookies.clear()
print(cookies)
最新文章
- AngularJS API之bootstrap启动
- HDU2205 又见回文(区间DP)
- 重新想象 Windows 8.1 Store Apps (80) - 控件增强: WebView 之基本应用, POST 数据, 与 JavaScript 交互
- ulimit 命令详解
- MResource
- jsp验证表单后再提交
- Windsock套接字I/O模型学习 --- 第三章
- Tomcat中的c3p0数据库连接池的释放
- Android 5.0 调色 Palette调色功能
- python文本读写数据
- Hadoop HDFS 用java API 进行读写
- LeetCode算法题-Number of Segments in a String(Java实现)
- 学习笔记之tmux
- 自定义适用于手机和平板电脑的 Dynamics 365(五):可视控件
- ubuntu下查询SSH状态和安装SSH服务
- Yii常用变量
- Storm框架:如何消费RabbitMq消息(代码案例)
- Linq简单使用
- Android的Master/Detail风格界面中实现自定义ListView的单选
- 类库服务寄宿到WebHost