我正在尝试使用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();
请给我提示或参考。
答案 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等