我构建了一个使用sql ws来获取数据的应用程序。我可以得到数据,但因为它是一个字符串,我不知道如何将它分成一些语言。
这是mt soqp rsponse
<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<S:Body>
<ns2:getDataFromSqlResponse xmlns:ns2="http://myAndroidIt.gy.com/">
<return>id- 2 first name- hanane last name- yniv
</return>
</ns2:getDataFromSqlResponse>
</S:Body>
</S:Envelope>
我怎样才能将id(2)放入verbals? 我想用它。
THX!
答案 0 :(得分:0)
我建议您使用像ksoap2-android这样的库来调用Soap Webservices。您可以使用maven将库添加到项目中:
<dependency>
<groupId>com.google.code.ksoap2-android</groupId>
<artifactId>ksoap2-android</artifactId>
<version>3.2.0</version>
</dependency>
如果你不使用maven,你可以找到jar here的下载链接。
您可以使用ksoap2库进行如下所示的soap调用:
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
// Here you could add things to your request like this:
request.addProperty("parameter1", 7);
request.addProperty("parameter2", "asdf");
request.addProperty("parameter3", someChildSoapObject);
SoapSerializationEnvelope envelope = new SSoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(URL);
httpTransport.call(SOAP_ACTION, envelope);
SoapObject response = (SoapObject)envelope.getResponse();
获得响应对象后,可以从响应对象中解析所需的值,如下所示:
int id = Integer.parseInt(response.getPropertySafely("id").toString());
String someOtherProperty = resonse.getPropertySafelyAsString("someProperty");
您可以找到有关如何使用ksoap2-android here的更多信息。
如果您不想或不能使用soap库,我建议您使用像Simple这样的序列化程序框架来反序列化String。你可以找到简单的here 我实际上曾经使用Simple编写一个小肥皂框架,因为不可能使用库,所以如果你不能使用ksoap2-android,我可以推荐这个。