首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python请求时,Bitbucket API返回'Bad request‘

使用python请求时,Bitbucket API返回'Bad request‘
EN

Stack Overflow用户
提问于 2017-06-30 02:18:01
回答 1查看 1.2K关注 0票数 0

我想请求Bitbucket API创建仓库。下面的curl命令起作用:

代码语言:javascript
复制
curl -v -X POST -d '{"scm": "git", "is_private": "true", "fork_policy": "no_forks", "project": {"key": "MARS"}}' -H "Content-Type: application/json"  https://api.bitbucket.org/2.0/repositories/myteam/test -u <user-name>

因此,我在python中使用请求进行了同样的尝试:

代码语言:javascript
复制
data = {'scm': 'git', 'is_private': 'true', 'fork_policy': 'no_forks', 'project': {'key': 'MARS'}}
auth=(user, password)
headers = {"Content-Type": "application/json"}
url = "https://api.bitbucket.org/2.0/repositories/myteam/test"
res = requests.post(url, data=data, headers=headers, auth=auth)

但是res返回'Bad request‘(错误请求)。为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-30 02:29:06

从您的curl请求可以明显看出,Bitbucket正在接受JSON编码的POST数据。使用requests作为表单编码数据发送数据会导致HTTP Error 400 Bad request。

为了作为JSON编码的POST数据发送,请使用:

代码语言:javascript
复制
requests.post(url, json=data, headers=headers, auth=auth)

参考资料:

http://docs.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44832338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档