415 Artifactory AQL POST 中不支持的媒体类型

Joh*_*ohn 5 artifactory python-requests

可能是一个简单的错误,但我通过这个简单的 Artifactory AQL POST 收到了 415 Unsupported Media Type 错误。无论是否包含内容类型标头,我都会收到相同的错误。

#!/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
Run Code Online (Sandbox Code Playgroud)

{“错误”:[{“状态”:415,“消息”:“不支持的媒体类型”}]}

Dar*_*nec 8

AQL 不是 JSON。里面的文本items.find(...)格式为 JSON,但整个查询作为一个整体并不遵循 JSON 标准。预期的内容类型是text/plain.

此外,json='{items.find( { "repo":{"$eq":"test-repo"} })}'您应该使用data='items.find( { "repo":{"$eq":"test-repo"} })'.