问答 向各位大佬请教一下接口测试, 为什么用 PostMan 发送 digest auth 成功, 用 python 的 requests 发送请求失败.....

SineIO · 2019年01月08日 · 最后由 SineIO 回复于 2019年03月08日 · 2688 次阅读

抱歉了, 我直接贴图了

使用 PostMan 发送请求成功



使用 requests 库发送请求失败....

代码中使用了参数, 但是我检查了 N 次了, 无论是 username 和 password,还是 device id 都是一样一样的......😂

共收到 15 条回复 时间 点赞

拿 charles 抓包看一下两边的请求,99.99999999% 是不一致的,你这个问题我遇到过无数次

建议打印出请求的数据比较下,另外用代码发送 Post 请求的时候注意数据的格式,json 和 data,你好像把 dict 给 json 了

cache-control:no-cache?
干掉?

magicyang 回复

木有用....我之前早试验了...😂

我也试过 data 还是不行....我甚至一度怀疑 他程序有问题...

SineIO #12 · 2019年01月09日 Author
我去催饭 回复

那你最后咋解决的呢, 我甚至想自己构造请求体了😅

SineIO 回复

就是请求不一样啊,照着 postman 改请求格式就好了

SineIO 回复

401 是鉴权返回的吧?
我 PYTHON 连接做的少,因为你是注销接口失败,应该是需要自己带用户信息的吧?你问问开发是 COOKIE 还是 SESSION?
朝着这个方向看看吧。

我去催饭 回复

😅 我去试试.., 多谢哥

SineIO #10 · 2019年01月09日 Author
magicyang 回复

digest auth 是需要请求两次的, python 的 requests 库 已经帮忙做了, 我往这方面沟通下去. 多谢多谢

SineIO 关闭了讨论 01月23日 13:39
SineIO 重新开启了讨论 01月23日 13:40
SineIO #13 · 2019年01月23日 Author

自己构造请求 headers, 可以发送了, 需要摘要认证的请求不用 requests 的自带认证方法了......

一般我碰到这种情况都是如下操作的:
1、通过 postman 的 code 功能里面可以进行格式转换, 将请求内容整个转换成 python 脚本格式
2、然后对比下你自己写的 python 脚本看看是否能够快速解决问题

抓包看下两边的请求差异

楼主能不能提供个 postman 安装包😂

SineIO #17 · 2019年03月08日 Author
haionever 回复

过分😂

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