android调用C# 服务返回对象使用方法说明

来源:互联网 发布:知乎 脱发 编辑:程序博客网 时间:2024/05/13 17:59
SoapObject类是一个主要用于调用WCF服务的类,其对象可以作为请求,发送到WCF服务器;也可以用于存储响应信息。
之前一篇博客提到,获取WCF服务器的响应以后,返回的是一个SoapObject类型的对象。通过调试发现,该对象本身是一个存储了一套HTML语句的文本。而SoapObject本身提供了对这套HTML语句的解析。
因此,我们对SoapObject的解析,其实可以理解为对HTML语句的解析。
本文以String类型为获取目标(即从WCF服务器提供方法返回的是String类型的数据)
首先我们把返回的String类型分成三种情况:单一个String, 一个String的数组,一个String的二维数组
①对于单一个String,我们在编写调用WCF服务的方法的时候,envelope.bodyIn就不能强制转换成SoapObject,否则会在运行时提示类型转换错误。
此时envelope.bodyIn可以直接作为一个Object对象返回,也可以调用其toString()方法,即可获得想要的数据。
②对于一个String的一维数组,我们要把envelope.bodyIn强制转换成SoapObject,获取一个SoapObject类型的对象soap。
此时,只要调用SoapObject的getProperty()方法即可获得想要的数据,参数对应一维数组下标。
例如:要从返回一维数组获取第一个元素,只要调用soap.setProperty(0)即可。
③对于一个String的二维数组。
此时。通过调试发现,getProgerty()方法返回的是另一个SoapObject对象,因此我们可以把envelope.bodyIn的SoapObject对象想象成一个二维数组,
其中getProperty()方法是返回一维数组的某一行,参数是对应行下标,再通过调用这一个SoapObject的getProperty()方法,即可获取某一元素。
例如:要获取String[0][1]元素,只要从envelope.bodyIn的SoapObject调用两次getProperty()方法:soap.getProperty(0).getProperty(1)
可见,只要把SoapObject抽象成一个数组,就不难去理解和解析其中的数据
0 0
原创粉丝点击