可能是一个简单的错误,但我通过这个简单的 Artifactory AQL POST 收到了 415 Unsupported Media Type 错误。无论是否包含内容类型 header ,我都会收到相同的错误。
#!/usr/local/bin/python
import requests
import json
username = "admin"
password = "password"
url = "http://myhost:8081/artifactory/api/search/aql"
r = requests.post(url, auth=(username, password), headers={"content-type":"application/json"}, json='{items.find( { "repo":{"$eq":"test-repo"} })}')
if r.status_code == 200:
print "Success!\n"
print r.content
else:
print "Fail\n"
print r.text
{
“错误”:[{
“状态”:415,
"message": "不支持的媒体类型"
]]
}
最佳答案
AQL 不是 JSON。 items.find(...)
中的文本格式为 JSON,但整个查询作为一个整体并不遵循 JSON 标准。预期的内容类型是 text/plain
。
此外,您应该使用 json='{items.find( { "repo":{"$eq":"test-repo"} })}'
而不是 data='items.find( { "repo":{"$eq":"test-repo"} })'
。
关于python-requests - 415 Artifactory AQL POST 中不支持的媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52394874/