Android中SOAP请求中XML的发送和接收
我想转换我的XML并将其发送到Web服务,Web服务正在接收以字符串形式作为参数的XML文件,但我接收到的错误是Web服务对象引用未发送到对象实例,以前处理过将XML发送到Web服务并接收XML作为响应的任何人 这是我正在使用的代码:Android中SOAP请求中XML的发送和接收,android,xml-serialization,ksoap2,Android,Xml Serialization,Ksoap2,我想转换我的XML并将其发送到Web服务,Web服务正在接收以字符串形式作为参数的XML文件,但我接收到的错误是Web服务对象引用未发送到对象实例,以前处理过将XML发送到Web服务并接收XML作为响应的任何人 这是我正在使用的代码: private static String Soap_Action = "http://portal.ordernet.net/RequestorderStringg"; private static String namespace = "htt
private static String Soap_Action = "http://portal.ordernet.net/RequestorderStringg";
private static String namespace = "http://portal.ordernet.net";
private static String methodName = "RequestorderString";
private static String URL = "https://portal.ordernet.net/WebServiceorderNotice.asmx";
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory
.newDocumentBuilder();
Document document = documentBuilder.newDocument();
Element rootElement = document.createElement("dmi:ShipNoticeRequest");
rootElement.setAttribute("xmlns:dmi", "http://portal.suppliesnet.net");
document.appendChild(rootElement);
Element ContactElement = document.createElement("dmi:RequesterISA");
rootElement.appendChild(ContactElement);
ContactElement.appendChild(document.createTextNode("123456789012345"));
Element articleElement = document.createElement("dmi:ShipDateRange");
Element ShipDateFrom = document.createElement("dmi:ShipDateFrom");
articleElement.appendChild(ShipDateFrom);
ShipDateFrom.appendChild(document.createTextNode("2012-06-14"));
Element ShipDateTo = document.createElement("dmi:ShipDateTo");
articleElement.appendChild(ShipDateTo);
ShipDateTo.appendChild(document.createTextNode("2012-06-15"));
rootElement.appendChild(articleElement);
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);
xmlString = output.toString();
} catch (ParserConfigurationException e) {
} catch (TransformerConfigurationException e) {
} catch (TransformerException e) {
}
SoapObject request = new SoapObject(namespace, methodName);
request.addProperty("RequestShipmentNoticeString", xmlString);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
// envelope.headerIn.
final HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try {
androidHttpTransport.call(Soap_Action, envelope);
SoapObject SoapResult = (SoapObject)envelope.bodyIn;
tv.setText("Status" + SoapResult);
} catch (Exception ex) {
ex.printStackTrace();
Log.e("static", "Exception in making call to server");
}
您的web服务方法是如何定义的?WSDL将准确地说明需要哪些元素名和名称空间。它不能从internet访问,但您应该可以从以下位置查看:MyWebService方法接受xml并返回xmlSOAPAction:xml