[ https://issues.apache.org/jira/browse/AMBARI-9016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sean Roberts updated AMBARI-9016: --------------------------------- Summary: Ambari API uses HTTP Header "Content-Type:text/plain" when the content is JSON. (was: Ambari API uses HTTP Header "Content-Type=text/plain" when the content is JSON.) > Ambari API uses HTTP Header "Content-Type:text/plain" when the content is > JSON. > ------------------------------------------------------------------------------- > > Key: AMBARI-9016 > URL: https://issues.apache.org/jira/browse/AMBARI-9016 > Project: Ambari > Issue Type: Bug > Components: ambari-server > Affects Versions: 1.7.0, 2.6.2 > Reporter: Sean Roberts > Priority: Blocker > Labels: newbie > > Ambari responds with a "Content-Type:text/plain" when the content is actually > JSON. > Also, API does not accept the "Content-Type:application/json" even though it > expects the content of the PUT/POSTS to be JSON. > This breaks most any HTTP/Restful client, including the Knox UI proxy. > Here is a GET > {code} > $ curl -i http://localhost:8080/api/v1/clusters > HTTP/1.1 200 OK > Content-Type: text/plain > { > "href" : "http://localhost:8080/api/v1/clusters", > "items" : [ > { > "href" : "http://localhost:8080/api/v1/clusters/clustername", > "Clusters" : { > "cluster_name" : "clustername", > "version" : "HDP-2.6" > } > } > ] > } > {code} > Attempt to send JSON with Content-Type:application/json fails and it although > it responds with JSON data, it says its "text/plain". > {code} > $ curl -v -u admin\ > -H "Content-Type: application/json" -H x-requested-by:useless \ > http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations -d > @temp.json > < HTTP/1.1 500 Server Error > < Content-Type: text/plain; charset=ISO-8859-1 > { > "status": 500, > "message": "Server Error" > } > {code} > It accepts JSON with "Content-Type:text/plain": > {code} > $ curl -v -u admin\ > -H "Content-Type: test/plain" -H x-requested-by:useless \ > http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations -d > @temp.json > > POST /api/v1/stacks/HDP/versions/2.4/recommendations HTTP/1.1 > > Content-Type: test/plain > < HTTP/1.1 200 OK > < Content-Type: text/plain > { > "resources" : [ > { > "href" : > "http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations/8", > ... snipped the rest of the JSON since it's not needed ... > {code} > This is the file that was sent: > {code} > $ cat temp.json > { > "recommend" : "configurations", > "services" : [ > "AMBARI_METRICS","HDFS","HIVE","MAPREDUCE2","PIG","TEZ","YARN","ZOOKEEPER" ], > "hosts" : [ > "ip-10-0-1-159.ec2.internal","ip-10-0-1-31.ec2.internal","ip-10-0-1-32.ec2.internal","ip-10-0-1-33.ec2.internal" > ] > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)