使用 ksoap2 库从 android 调用 .net SOAP1.1 web 服务 我遇到了将响应转换到自定义对象的问题。例如下面的代码在 httpTransport.call(soapAction, soapEnvelope) 之后被正确调用;并且里面有数据。但是我不能将它转换为特定对象,既不能转换为 SoapObject 也不能转换为 Vector,正如我在几个示例中看到的那样,我得到 CastException 或什么都没有。 如果有人知道如何处理它,请帮忙。
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;
}
最佳答案
首先尝试看看您是否收到任何回复。
Object obj = envelope.bodyIn;
如果此 obj
不为空,则尝试以下操作。
SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
我的猜测是,如果您得到一些回应,这应该会起作用。
您需要告诉 kSOAP StatusSetting
对象是什么以及如何
将 SOAP 响应转换为 StatusSetting
对象。
关于android - ksoap2 类型转换 getResponse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3038165/