使用ksoap2 lib从android调用.net SOAP1.1 web服务我遇到了将自定义对象强制转换为响应的问题。例如下面的代码在httpTransport.call(soapAction,soapEnvelope)后称为正确;并在里面有数据。但是我不能将它转换为SoapObject或Vector的特定对象,正如我在几个例子中看到的,我得到了CastException或简单的东西。 如果有人知道如何处理它,请帮助。ksoap2 cast getResponse()
public StatusSetting[] GetAllStatuses(String installation){
StatusSetting[] statuses = null;
String methodName = "GetAllStatuses";
String soapAction = NAMESPACE + "/" + methodName;
SoapObject request = new SoapObject(NAMESPACE, methodName);
request.addProperty("installation", installation);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
AndroidHttpTransport httpTransport = new AndroidHttpTransport(SERVICE_URL);
try {
httpTransport.call(soapAction, soapEnvelope);
statuses = (StatusSetting[])soapEnvelope.getResponse();
} catch (Exception e) {
e.printStackTrace();
}
return statuses;
}
谢谢,它的工作原理,我在SoapObject数据。你可以给一个方向如何解析SoapObject。我的意思是读取属性,并寻找我需要的数据。我试图得到resultsRequestSOAP.properties它的工作原理(它得到像json数据)在调试模式,但属性不是打开方法在代码中使用。 – Maxim 2010-06-15 09:32:53
我知道两种分析SoapObject的方法。 1.实现'org.ksoap2.serialization.Marshal'接口并注册相应的SOAP标签。 2.另一种方法是使用SoapObject的getProperty()和getAttribute()方法来获取相应的值。 HTH。 – 2010-06-15 14:15:30
也看看这个。 http://www.drdobbs.com/article/printableArticle.jhtml;jsessionid=OKCYS4LV2OQDPQE1GHPCKHWATMY32JVN?articleId=208800166&dept_url=/mobility/ – 2010-06-15 14:17:52