如何在Python中的POST请求中将查询作为正文发送

时间:2015-12-18 23:44:49

标签: python python-2.7 python-requests artifactory

我正在尝试将一个神器Query作为一个主体发送到POST方法。我总是得到400的响应(这是一个错误的请求)。这是我的代码。我在这里做错了什么。查看看起来很好它使用curl并使用Groovy。

host = http://artifactory.com/artifactory
build_url = '%s/api/search/aql' % (host)
payload='{items.find({"repo":"lib","type":"file","path":"builds"}).include("*"}'
response = requests.post(build_url,data=payload,auth=(user:pwd))
print response

输出:  回复[400]

我使用的是Python 2.7,这里是REST API详细信息

Artifactory Query Language (AQL) REST API
Since: 3.5.0
Security: Requires an authenticated user
Usage: POST /api/search/aql
Consumes: text/plain

- 提前致谢

1 个答案:

答案 0 :(得分:2)

我认为你在include("*"之后最后错过了一个括号。试试这个:

payload='{items.find({"repo":"lib","type":"file","path":"builds"}).include("*")}'

编辑:根据讨论,问题是缺乏身份验证。