android - ksoap2 类型转换 getResponse()

标签 android casting web-services ksoap2

使用 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/

相关文章:

java - 现有应用程序(java/eclipse/android)到其他平台

c++ - 带引用和不带引用的指针类型转换

arrays - 将静态数组转换为不同元素类型的开放数组

java - 如何在 PUT 中将实体类与 JSON 请求体关联起来?

c# - 增加 jQuery/Javascript 中的 POST 数据大小

android - 设备解锁时的应用程序回调

android - 这个系统是有序广播还是正常广播?

android - 如何将自动首选项文件绑定(bind)到android中的自定义首选项

c# - 是否可以将固定字节数组转换为结构,以便在 C# 中进行双向更改?

.net - 异常 "System.Net.WebException: The remote name could not be resolved"的原因?