接口测试 python request 关闭重定向

徐旻 · May 04, 2017 · Last by 徐旻 replied at May 05, 2017 · 4426 hits

今天在用 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 条回复 时间 点赞
1Floor has deleted

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

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

徐旻 #3 · May 05, 2017 Author
zragon 回复

学习到了。thx

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up