开发者

how can i pass data for nested xml tag for soap base service android

I want to pass data for nested xml tag for soap base service. But it is giving error my xml file. The code is given below ...

 SOAPAction: "http://mobile.expenseanywhere.com/verifyLogin"

 <?xml version="1.0" encoding="utf-8"?>
   <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Body>
   <verifyLogin xmlns="http://mobile.expenseanywhere.com/">
   <AuthToken>
    <CorporateId>string</CorporateId>
    <Username>string</Username>
    <Password>string</Password>
  </AuthToken>
  </verifyLogin>
 </soap:Body>
</soap:Envelope>

And my code is:

try {


               SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

               PropertyInfo pi = new PropertyInfo();
               pi.setName("AuthToke开发者_C百科n");
               pi.setValue(new SoapObject(NAMESPACE,METHOD_NAME)
                .addProperty("CorporateId","MayDemo2011")
                .addProperty("Username","wildnet")
                .addProperty("Password","Iphone123")
                );
               request.addProperty(pi);

               SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
               envelope.dotNet = true;
               envelope.bodyOut = request;
               envelope.encodingStyle = SoapSerializationEnvelope.XSI;
               envelope.setOutputSoapObject(request);

               androidHttpTransport.call(SOAP_ACTION, envelope);
               Object result = envelope.getResponse();
}

and error is

   07-20 18:55:45.613: WARN/System.err(1164): SoapFault - faultcode: 'soap:Client' faultstring: 'Server was unable to read request. ---> There is an error in XML document (1, 346). ---> The specified type was not recognized: name='verifyLogin', namespace='http://mobile.expenseanywhere.com/', at <AuthToken xmlns='http://mobile.expenseanywhere.com/'>.' faultactor: 'null' detail: org.kxml2.kdom.Node@405a4608
   07-20 18:55:45.623: WARN/System.err(1164):     at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:112)
   07-20 18:55:45.632: WARN/System.err(1164):     at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)
    07-20 18:55:45.642: WARN/System.err(1164):     at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
  07-20 18:55:45.642: WARN/System.err(1164):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)
     07-20 18:55:45.642: WARN/System.err(1164):     at soap.sdjfh.dj.verification$1.onClick(verification.java:59)


Try this out:

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

PropertyInfo pi = new PropertyInfo();
pi.setName("AuthToken");
pi.setValue(new SoapObject(NAMESPACE,METHOD_NAME)
   .addProperty("CorporateId","MayDemo2011")
   .addProperty("Username","wildnet")
   .addProperty("Password","Iphone123")
   );
request.addProperty(pi);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
result = envelope.getResponse();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜