我如何可以通过嵌套XML标记数据皂基服务机器人 [英] how can i pass data for nested xml tag for soap base service android
本文介绍了我如何可以通过嵌套XML标记数据皂基服务机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要传递的数据为皂基服务嵌套的XML标记。但它给我的错误的XML文件。在code下面给出...
的SOAPAction:http://mobile.expenseanywhere.com/verifyLogin < XML版本=1.0编码=UTF-8&GT?;
<肥皂:信封的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/\">
<肥皂:身体与GT;
< verifyLogin的xmlns =http://mobile.expenseanywhere.com/>
<&的authToken GT;
< CorporateId>串LT; / CorporateId>
<用户名>串LT; /用户名>
<密码和GT;串LT; /密码>
< /&的authToken GT;
< / verifyLogin>
< / SOAP:身体与GT;
< / SOAP:信封>
和我的code是:
{尝试
SoapObject要求=新SoapObject空间(namespace,METHOD_NAME); PI的PropertyInfo =新的PropertyInfo();
pi.setName(的authToken);
pi.setValue(新SoapObject空间(namespace,METHOD_NAME)
.addProperty(CorporateId,MayDemo2011)
.addProperty(用户名,wildnet)
.addProperty(密码,Iphone123)
);
request.addProperty(PI); SoapSerializationEnvelope信封=新SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = TRUE;
envelope.bodyOut =请求;
envelope.encodingStyle = SoapSerializationEnvelope.XSI;
envelope.setOutputSoapObject(请求); androidHttpTransport.call(SOAP_ACTION,信封);
对象result = envelope.getResponse();
}
和误差
07-20 18:55:45.613:WARN / System.err的(1164)的SOAPFault - 故障code:香皂:客户端faultstring:服务器无法读取请求。 --->有XML文档(1,346)的一个错误。 --->指定的类型无法识别:名称='verifyLogin',空间=的http://mobile.expenseanywhere.com/',AT<的authToken的xmlns =HTTP://mobile.expenseanywhere.com/'> ;. faultactor:'空'的细节:org.kxml2.kdom.Node@405a4608
07-20 18:55:45.623:WARN / System.err的(1164):在org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:112)
07-20 18:55:45.632:WARN / System.err的(1164):在org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)
07-20 18:55:45.642:WARN / System.err的(1164):在org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
07-20 18:55:45.642:WARN / System.err的(1164):在org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)
07-20 18:55:45.642:WARN / System.err的(1164):在soap.sdjfh.dj.verification $ 1.onClick(verification.java:59)
解决方案
尝试了这一点:
SoapObject要求=新SoapObject空间(namespace,METHOD_NAME);PI的PropertyInfo =新的PropertyInfo();
pi.setName(的authToken);
pi.setValue(新SoapObject空间(namespace,METHOD_NAME)
.addProperty(CorporateId,MayDemo2011)
.addProperty(用户名,wildnet)
.addProperty(密码,Iphone123)
);
request.addProperty(PI);SoapSerializationEnvelope信封=新SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = TRUE;
envelope.setOutputSoapObject(请求);
AndroidHttpTransport androidHttpTransport =新AndroidHttpTransport(URL);
androidHttpTransport.call(SOAP_ACTION,信封);
结果= envelope.getResponse();
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("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.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();
这篇关于我如何可以通过嵌套XML标记数据皂基服务机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文