android - 如何在 Android 中解析复杂的 SOAP 响应

标签 android wcf soap sax

两天以来,我尝试使用 WCF (.NET) Soap 服务并序列化它的响应,但没有成功。我得到了正确的响应(我必须将其放在 Pastebin: SOAP Response Example 上),但 KSOAP2 无法正确处理 .NET 数据集。 我已经查阅了有关此特定问题的各种文章,但没有一篇文章有​​ .NET 数据集可以处理。提供指导的主要文章是 article by IBM "Working with XML on Android"

我尝试按照以下步骤解析我的数据,但没有成功:

  1. 使用 SAX 进行解析 (android) -> 由于命名空间不同,似乎无法处理这个复杂的文档。
  2. 使用 DOM 对象(android)-> NullPointerException(dooh!)
  3. 与 Digester (dom4j) -> NullPointerException (arggh!)
  4. helloandroid.com 建议的方法“为 android 使用 ksoap2,并解析输出数据”

一些问题: - 返回的响应是一个普通的 XML,但实际上它包含一个 .NET 数据集。有没有人成功地从这样的响应中解析出数据? - 有没有办法让 KSOAP2 不尝试解析数据?它返回一个垃圾 SoapObject,这是不可读的。我只想要 SOAP 主体的内容。有办法拦截吗? - 你还有其他提示吗?

最佳答案

使用 ksoap2,您可以将信封调试设置为 true,然后获取响应转储,其中将包含完整的 xml。

但是,是什么让您认为返回的 SoapObject 不可读。在调试器中检查一下,您会发现一切都在那里,您可以使用 getProperty("propname") 和 getAttribute("attribute) 解析它,如果嵌套,则它们又是 SoapObjects,或者包含实际值它们是叶节点。

查看 wiki 上的一些链接 http://code.google.com/p/ksoap2-android/

关于android - 如何在 Android 中解析复杂的 SOAP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4162598/

相关文章:

java - 通过电子邮件发送用户结果

c# - 列出 WCF 服务中的数据成员

tomcat - JAX-WS依赖导致tomcat Failed to scan File错误

android - 如何更改android studio中的默认布局(activity_main)

java - 包名中的数字 Android Studios

android - Android KitKat 中的计步器

c# - WCF:客户端发送值但服务器收到空字符串

wcf - 如何在一项服务或 DAL 中使用多个数据库(MSSQL)?

javascript - 向 SOAP WSDL 发送请求

iphone - iPhone 的可重用 Web 服务代码