我正在使用ksoap2在我的应用程序中使用第三方web服务。The服务返回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以外的其他类型。
请建议我如何使用ksoap2在我的客户端使用此web服务。
注意:-我使用了一个空字符串作为soapAction,因为在WSDL中它是一个空字符串。
提前谢谢你。
发布于 2013-12-01 18:05:23
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,信封);
Log.d("MyAPP",“-”+ httpTransport.requestDump + "\r\n\r\n“+ httpTransport.responseDump);
https://stackoverflow.com/questions/20307277
复制相似问题