已解决 调用api登录后GET请求可以获得用户信息。但是post请求调用导出文件为空

步骤:

1. java httpclient调用/biz/user-login.html获取到zentaosid和verifyRand

2.zentaosid添加到httpclient的header,verifyRand,account,password,keepLogin,passwordStrength模拟表单提交。

3. 调用/biz/user-login.json接口可以获得用户的相关信息。说明我们的登录时成功的

4.带上zentaosid验证GET接口 /biz/bug-browse-60.html,可以得到所有bug的信息。证明get接口在登录之后时可以返回成功的

5.zentaosid添加到httpclient的header,验证post导出接口/biz/bug-export-60-id_desc-unclosed.html. 导出文件为空。


注意: 我把第5步的zentaosid换成我手动在网页上登录后获得的zentaosid,仍然用第5步的程序调用导出接口/biz/bug-export-60-id_desc-unclosed.html。导出文件却成功了。


这里仅仅是zentaoid不同而已, 由此可以证明第三方代码没有问题,况且调用get接口成功获得用户信息和bug列表就证明了zentaoid是登录成功的,为什么调用post接口就失败了呢,求解答



禅道版本 biz4.1.3 源码包
操作系统
客户端浏览器

提问者: 胡媛媛 悬赏:5 日期: 2021-09-23 21:11:12 答案:1 点击:521

获取技术支持

QQ: 电话:
设置备注
答案列表
2021/09/24
api调用步骤
PATH_INFO方式
1、访问 http://x.com/api-getsessionid.json获取禅道session信息
2、使用上一步获取的session作为url参数访问 http://x.com/user-login.json?account=account&password=123456&zentaosid=6v9bl9hp3o5chvdd46u5fg36g4

3、http://x.com/project-index-no.json?zentaosid=6v9bl9hp3o5chvdd46u5fg36g4


将zentaosid get方式提交下看下呢

2021/09/26
谢谢,这个我在好多地方看到过。我已经解决了,我的猜测post可能防了爬虫的,所以程序调不通,要模仿浏览器header