era*_*ndi 6 android android-ksoap2
我打电话在我的Android应用程序的网络服务和方法是getGramaNiladhariData(),我得到的结果作为SoapObject.
result = (SoapObject) envelope.bodyIn; Log.d("WS", String.valueOf(result));
Run Code Online (Sandbox Code Playgroud)
这就是我得到的 String.valueOf(结果)
这里我调用的方法返回一个complexType对象,由5个属性组成.正如我在互联网上发现的那样,我无法获得soap对象作为返回complexType对象的webservice方法的结果.如果是这样,我应该如何获取值.
我想要解决的是为什么我得到anyType {},作为值,而不是实际值.任何帮助,将不胜感激
回答太晚了.但是FYI和其他发现这个有用的人,
通过做String.valueOf(result)你正在打印身体的全部内容.但为了使用参数获取您的值,首先您需要点击才能更正SoapObject.
我不知道是否有任何简单的方法可以找到正确的方法SoapObject,但仍然可以这样做,一旦你得到了正确的SoapObject话,你就完成了.在下面找到如何找到正确的SoapObject,
首先,你需要先检查一下params的数量SoapObject,
result.getPropertyCount();
Run Code Online (Sandbox Code Playgroud)
你会得到更少的数量,因为这是第一个封面,
然后,打印并查看哪个参数为您提供了核心信息,
result.getProperty(0);
result.getProperty(1);
etc ...
Run Code Online (Sandbox Code Playgroud)
找到正确的参数后,抓住它SoapObject.像这样,
SoapObject result2 = (SoapObject) result.getProperty(0);
Run Code Online (Sandbox Code Playgroud)
然后检查这个对象的计数.并且做到与上面相同,直到你得到正确的SoapObject.
一旦找到最后一个SoapObject,就会打印出这样没有无用的字符串,
anyType{gnName = Prasad; address = Address of the person; ; workingDays = 5; gnDivision = California; contactNumber = 0123456789}
Run Code Online (Sandbox Code Playgroud)
现在你可以像这样继续使用这个对象,
SoapObject result3 = (SoapObject) result2.getProperty(5);
Log.v("Name : ", result3.getProperty("gnName").toString());
Run Code Online (Sandbox Code Playgroud)
您将获得DDMS中的输出,如下所示,
Name : Prasad
Run Code Online (Sandbox Code Playgroud)
我想这会对你有帮助,如果你有任何进一步的问题,请告诉我.
| 归档时间: |
|
| 查看次数: |
11006 次 |
| 最近记录: |