Web服务返回xml - ksoap2

时间:2013-12-01 00:20:13

标签: android xml web-services android-ksoap2

我正在使用kso​​ap2在我的应用程序中使用第三方Web服务。 Web服务返回XML数据。我的搜索告诉我ksoap2不支持xml。

此外,当我在客户端做这样的事情时,

htse.call(SOAP_ACTION, envelope);
SoapObject result = (SoapObject) envelope.bodyIn;

它给出了以下异常。

java.lang.ClassCastException: org.ksoap2.SoapFault cannot be cast to org.ksoap2.serialization.SoapObject

同样,我的搜索告诉我,这是因为返回的数据可能是XML格式,或者是soapObject以外的某种类型。

请建议我如何使用kso​​ap2在我的客户端使用此Web服务。

注意: - 我使用空字符串作为soapAction,因为在WSDL中它是一个空字符串。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

Ksoap确实支持XML。

当你调用envelope.bodyIn时,它会返回SoapObject或SoapFault。 你应该使用下面的代码处理它:

if(envelope.bodyIn instanceof SoapObject)
    {
        return data;
    }
    else
        throw (SoapFault)envelope.bodyIn;

在你的情况下你得到了soapfault对象。这意味着您的请求不正确或服务器返回您的请求的错误消息。 检查请求参数,因为SOAP对象(SoapSerializationEnvelope ...)中的大多数时间请求值未正确设置。 同样在我看来,soapAction不应该是空的。尝试使用SOAP-Sonar等测试您的WSDL。检查提供成功响应的值。

编辑: 检查请求和响应转储。

httpTransport.call(SOAP_ACTION,envelope);

Log.d(“MyAPP”,“-----------------”+ httpTransport.requestDump                 +“\ r \ n \ r \ n”+ httpTransport.responseDump);