我需要从我的应用程序向Web服务发送3件事:用户名+密码和包含更多XML的消息。
request.addProperty("username", username);
request.addProperty("password", password);
request.addProperty("message", UitVoer); // uitvoer is a String that contains XML
我使用ksoap2 librabry,它总是适用于android< - >网络服务,但atm我不确定它是否仍然适用于我需要的东西。
当我检查envelope.bodyOut
时,所有标签和< >迹象看起来应该是。
但随后我收到了来自Web服务的错误消息,其中包含我发送的XML,并显示了这些符号的HTML代码。
ksoap2是否会替换标志,是否应该使用其他方式将我的内容发送到Web服务,或者Web服务端是否有问题? (我无法控制Web服务,所以我不知道它在那方面做了什么。)
答案 0 :(得分:2)
这是构建xml请求的方法;希望这会有所帮助:)
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.newDocument();
Element rootElement = document.createElement("map");
document.appendChild(rootElement);
Element em = document.createElement("string");
em.setAttribute("name", "FirstName");
em.appendChild(document.createTextNode("Rita"));
rootElement.appendChild(em);
em = document.createElement("string");
em.setAttribute("name", "LastName");
em.appendChild(document.createTextNode("Roy"));
rootElement.appendChild(em);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
Properties outFormat = new Properties();
outFormat.setProperty(OutputKeys.INDENT, "yes");
outFormat.setProperty(OutputKeys.METHOD, "xml");
outFormat.setProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
outFormat.setProperty(OutputKeys.VERSION, "1.0");
outFormat.setProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperties(outFormat);
DOMSource domSource = new DOMSource(document.getDocumentElement());
OutputStream output = new ByteArrayOutputStream();
StreamResult result = new StreamResult(output);
transformer.transform(domSource, result);
strXMLInput = output.toString();