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

How to send a Query as a body in the POST request in Python

我正在尝试将人工查询作为正文发送到 POST Method.I 总是得到 400 的响应(这是一个错误的请求)。这是我的 code.What我做错了吗 here.Query 看起来不错,因为它可以使用 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

--提前致谢

我认为您只是在 include("*" 之后的末尾少了一个括号。试试这个:

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

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