我正在使用JAva HttpsURLConnection发送Soap信封消息。看到下面的我的Soap信封有效载荷:
OutputStream out = con.getOutputStream();
Writer wout = new OutputStreamWriter(out);
wout.write("<?xml version='1.0' encoding='UTF-8'?>\r\n");
wout.write("<S:Envelope xmlns:S= ");
wout.write(
"'http://schemas.xmlsoap.org/soap/envelope/'>\r\n"
);
wout.write("<S:Body><ns2:getAccessibleDBs xmlns:ns2=");
wout.write(
"'http://webservice.namespace.com/'>\r\n");
wout.write(" </ns2:getAccessibleDBs>\r\n");
wout.write(" </S:Body>\r\n");
wout.write("</S:Envelope>\r\n");
wout.flush();
wout.close();
但是服务器消息如下:
com.sun.xml.ws.transport.http.HttpAdapter E不支持的内容类型:application / x-www-form-urlencoded支持的内容是:[text / xml] com.sun.xml.ws.server.UnsupportedMediaException:不支持的内容类型:application / x-www-form-urlencoded支持的对象是:[text / xml]
可以,请您深入了解如何格式化消息Paylod以避免服务器错误。
此致
答案 0 :(得分:0)
你有两个硬汉,
Content-Type="text/xml"
。您的XML不正确。如下所示,没有不必要的换行符\r\n
等,名称空间应以double quote
开头,而不是单引号。
<xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><ns2:getAccessibleDBs xmlns:ns2="http://webservice.namespace.com/">
</ns2:getAccessibleDBs></S:Body></S:Envelope>
如果您进行了以上两个更改,它应该可以工作。