1

我需要从我的应用程序向 Web 服务发送 3 件事:用户名 + 密码和包含更多 XML 的消息。

request.addProperty("username", username);
request.addProperty("password", password);
request.addProperty("message", UitVoer); // uitvoer is a String that contains XML

我使用 ksoap2 库,它总是适用于 android <-> web 服务,但 atm 我不确定它是否仍然适用于我需要的东西。

当我检查我的envelope.bodyOut时,所有标签和 < > 标志看起来都应该。但随后我从 Web 服务收到一条带有我发送的 XML 的错误消息,它显示了这些标志的 HTML 代码。

ksoap2 是否替换了标志,我应该使用其他方式将我的东西发送到 Web 服务,还是 Web 服务端有问题?(我无法控制 Web 服务,所以我不知道它在那方面做了什么。)

4

1 回答 1

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();
于 2012-08-24T09:18:33.540 回答