android - SoapObject 结果在重新调整 complexType 对象时返回 anyType{} 作为值

标签 android android-ksoap2

我在我的 Android 应用程序中调用 Web 服务,方法是 getGramaNiladhariData(), 我得到的结果是 SoapObject。

result = (SoapObject) envelope.bodyIn;  Log.d("WS", String.valueOf(result));

这就是我得到的 String.valueOf(result)

getGramaNiladhariDataResponse{getGramaNiladhariDataResult=anyType{gnName=anyType{};地址=任何类型{}; workingDays=anyType{}; gnDivision=任何类型{}; contactNumber=anyType{}; };

这里我调用的方法返回一个 complexType 对象,由 5 个属性组成。 正如我在 Internet 上发现的那样,由于返回 complexType 对象的 Web 服务方法,我无法获得 soap 对象。如果是这样,我应该如何获取这些值。

我想解决的是为什么我得到 anyType{} 作为值,而不是实际值。 任何帮助将不胜感激

最佳答案

来不及回答。但仅供引用和其他认为这很有用的人,

通过执行 String.valueOf(result),您将打印正文的全部内容。但是为了使用参数获取您的值,首先您需要输入以更正 SoapObject

我不知道是否有任何简单的方法可以找到正确的 SoapObject,但仍然可以通过这种方式找到正确的 SoapObject 然后你完成。在下面找到如何找到正确的 SoapObject,

首先,您需要检查第一个 SoapObject 中的参数数量,

result.getPropertyCount();

因为这是第一个封面,所以你会得到更少的计数,

然后,打印并查看哪个参数为您提供了正确的详细信息,

result.getProperty(0);
result.getProperty(1);
etc ...

一旦你找到了正确的参数,然后获取那个 SoapObject。像这样,

SoapObject result2 = (SoapObject) result.getProperty(0);

然后检查这个对象的数量。并执行与上述相同的操作,直到获得正确的 SoapObject

一旦找到最后一个 SoapObject,它将像这样打印,没有无用的字符串,

anyType{gnName = Prasad; address = Address of the person; ; workingDays = 5; gnDivision = California; contactNumber = 0123456789}

现在你可以像这样继续处理这个对象了,

SoapObject result3 = (SoapObject) result2.getProperty(5);
Log.v("Name : ", result3.getProperty("gnName").toString());

您将在 DDMS 中获得如下输出,

Name : Prasad

我想这会对您有所帮助,如果您还有其他问题,请告诉我。

关于android - SoapObject 结果在重新调整 complexType 对象时返回 anyType{} 作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337137/

相关文章:

Android 中的 java.lang.ExceptionInInitializerError

android - 在 Android ScrollView 类中使用 smoothScrollBy 方法

java - 使用 ksop2 如何将大文件发送到 web 服务

android - 如果我的目标是 android 2.2,我应该使用什么版本的 sqlite

android - 子 ScrollView 拦截/阻止/吞噬对其父 View 的点击

android - 堆内存不足android

c# - 使用 ksoap 协议(protocol)不匹配的 Soap web 服务和 android 客户端

android - 如何使用 soap 库将字符串数组传递给 Web 服务?

android - 使用 KSOAP 调用 webservice 时获取 NumberFormatException