接口测试 python request 关闭重定向

徐旻 · 2017年05月04日 · 最后由 徐旻 回复于 2017年05月05日 · 1382 次阅读

今天在用 requests 做一个用 api 模拟登录后拿取 sessionId 的 case。

在前台获取登录的 sessionId 没有问题。
但是到了后台获取登录的 sessionId 就一直不拿不到。用 fiddler4 抓了包发现,原来请求被 302 了(也就是被重定向了。)
由于 python 的 request 库默认是允许重定向的,也就是拿到新的 url 的状态,所以我需要的第一个 url 的状态就拿不到了。

这个时候在请求的时候设置参数把允许重定向这个选项关闭就可以了。

response = request.get(url, allow_redirects=False)

这个时候打印状态 response.status_code 应该是 302,如果允许重定向的情况下这个值是 200

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 3 条回复 时间 点赞

创建 session 对象啊,可以规避这些问题
requests.Session()

kanchi240 回复

其实 requests.get 内部也是用 Session 实现的,默认情况下 allow_redirects 都是 True。

@lunamagic 你的方法是对的。如果跳转前后的逻辑都想验证的话,也可以用 response.history,这里存着所有中间的 response,包括 302 等跳转。

zragon 回复

学习到了。thx

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册