解决 requests cookies 为空的坑

简介: requests cookies 为空的一个坑,两种方案轻松解决。

转载请注明出处❤️

作者:测试蔡坨坨

原文链接: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)

相关文章
|
数据库
FastAPI(53)- Response Headers 响应设置 Headers
FastAPI(53)- Response Headers 响应设置 Headers
517 0
FastAPI(53)- Response Headers 响应设置 Headers
|
3月前
|
安全 网络安全 数据安全/隐私保护
response.cookies
response.cookies
|
4月前
|
API
webclient在delete请求时携带request body
webclient在delete请求时携带request body
86 0
FastAPI(54)- 详解 Request 请求对象(上)
FastAPI(54)- 详解 Request 请求对象(上)
592 0
|
4月前
|
JSON 数据格式
这个错误信息表示在执行`requests.post(url, data=data, headers=head).json()`时出现了问题
这个错误信息表示在执行`requests.post(url, data=data, headers=head).json()`时出现了问题
58 2
|
4月前
给requests请求添加cookie
给requests请求添加cookie
64 0
|
9月前
|
JSON 缓存 Java
修改Request与Response中的内容
修改Request与Response中的内容
77 0
requests--Cookie设置
requests--Cookie设置
|
测试技术 数据格式 Python
requests--请求头设置
requests--请求头设置
|
JSON Java 数据格式
Postman发送json数据出现HttpMessageNotReadableException: Required request body is missing的几种解决方法以及页面显示400解决
Postman发送json数据出现HttpMessageNotReadableException: Required request body is missing的几种解决方法以及页面显示400解决
413 0