Android中SOAP请求中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

我想转换我的XML并将其发送到Web服务,Web服务正在接收以字符串形式作为参数的XML文件,但我接收到的错误是Web服务对象引用未发送到对象实例,以前处理过将XML发送到Web服务并接收XML作为响应的任何人

这是我正在使用的代码:

    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