ksoap2 铸造 getResponse()

2023-12-28

使用 ksoap2 lib 从 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; 

if this obj不为空,然后尝试以下操作。

SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;

我的猜测是,如果您得到一些回应,这应该可行。

你需要告诉 kSOAP 什么StatusSetting对象是并且how将 SOAP 响应转换为StatusSetting目的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ksoap2 铸造 getResponse() 的相关文章