一句话导读:
最近在做研发效能提升的事情,其中有一块就是要对项目管理相关数据做统计,我们使用的是ones做的项目管理,ones本身带的那些报表满足不了我们的需求,就想着看这些数据是不是能自己拿出来做统计,有想法那就干。
首先想到的就是找ones的API,果然,提供了API,这就方便多了。用什么语言写呢?我是搞java的,但是就是爬点数据,搞java有点麻烦,那就用Python吧,通过Python的requests包做登录请求操作,就遇到了标题的问题:Error: Unexpected status code 400
通过查API接口文档,显示是参数错误
但是参数就是按照API文档整的哈,而且也用了JSON形式。
解决
这可如何是好。Python我还是菜鸟哈。只能问度娘了。结果发现还真是参数格式的问题,虽然我们在Python中login_data是一个JSON格式对象,但是我们在传参数的时候应该将Python的json对象改成JSON字符串的形式传递,将login_data用json.dump()处理下就可以了。后来研究了下request的post函数,发现我们可以不用data传递,直接用json参数传递即可,用json参数时可以不用转成字符串。
response = requests.post(url, json=login_data, headers=headers)