415 XML Post Rest API不支持的媒体类型

时间:2015-03-28 19:25:09

标签: android rest post

我正在尝试使用XML字符串请求REST POST API,但我收到了以下错误响应。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<apiErrors>    
   <apiError>        
      <errorMessage>415 Unsupported Media Type - null</errorMessage>    
   </apiError>
</apiErrors>

我不明白为什么会这样。甚至我也设置了内容类型和标题。

请查看我的代码。

String XmlString = "<Contact>"
                                +"<name>Sandeep</name>"
                                +"<title>Mr.</title>"
                                +"<Address>India</Address>"                                 
                                +"</Contact>";      

            try {
                StringEntity se = new StringEntity(XmlString);
                HttpPost httpRequest = new HttpPost("http://abc:xyz123@000.000.000.00:8080/aaa/sample/feed/000001");
                httpRequest.setHeader("Content-Type","application/soap-xml;charset=UTF-8");
                httpRequest.setHeader("Accept","text/plain");

                httpRequest.setEntity(se);
                HttpClient httpclient = new DefaultHttpClient();
                HttpResponse httpResponse;
                httpResponse = httpclient.execute(httpRequest, new BasicHttpContext());

                finalres = inputStreamToString(httpResponse.getEntity().getContent())
                            .toString();

请给我提示或参考。

3 个答案:

答案 0 :(得分:1)

您是否尝试过没有charset =&#34; utf-8&#34;?

(由于声誉不佳,我无法发表评论)

答案 1 :(得分:1)

在您的请求中,您指定的通信是soap-xml

httpRequest.setHeader("Content-Type","application/soap-xml;charset=UTF-8");

尝试通过删除&#34; soap&#34;来指定使用普通xml。部分。

有效的xml内容类型:

&#34;文本/ XML&#34;或&#34; application / xml&#34;

Soap调用是非常具体的格式化xml和响应,除非你修剪输出以删除所有的soap xml,它似乎是一个普通的xml服务。

答案 2 :(得分:0)

如果您在REST服务中使用@Consumes(MediaType.APPLICATION_XML),请使用以下内容类型

httpRequest.setHeader("Content-Type","application/xml;");

使用浏览器REST客户端检查应用程序,例如Curl,Advanced rest clent等