Android调用Web服务
现在大部分应用程序都把业务逻辑处理,数据调用等功能封装成了服务的形式,应用程序只需要调用这些web服务就好了,在这里就不赘述web服务的优点了。本文总结如何在android中调用Web服务,通过传递基类型和复杂类型对比调用.NET平台发布的WCF服务和WebService服务之间的区别。
0 写在前面
以前都是在.NET平台上conding,使用.NET平台发布服务,然后再在.NET的客户端进行调用,非常的方便,最简单的方式就是添加web服务引用,通过添加web服务引用实现像本地调用那样调用web服务,当然我们也可以采用http-post、http-get和基于soap协议的方式去调用服务。
最近在弄andriod的程序,需要调用web服务器上的数据,服务采用C#写的,并部署在iis服务器上。我们可以像.NET那样调用服务那,利用andriod库自带的HttpPost和HttpGet类来调用Web服务。但是wcf服务发布的一些没有添加WebGet或者WebInvoke特性的服务,都只提供基于Soap协议的服务调用方式。虽然soap协议也是基于Http协议,也可以使用HttpPost类来进行调用,但拼凑soap结构体是比较麻烦,好在Ksoap2包提供了调用web服务的方法,而且还比较好的兼容了.NET平台发布的服务。因此本文总结在Andriod中如何使用Ksoap2来调用.NET平台的服务,通过传递基类型和复杂类型对比调用.NET服务发布的WCF服务和WebService服务之间的区别。本文的末尾提供Ksoap2包的下载。
1 WCF服务
我们在服务中提供两个方法,一个计算整数加法,另一个接受People对象并且返回People信息(string)。
1.1 People的数据契约
[DataContract] public class People {
[DataMember] public int Age;
[DataMember] public string Name;
}
2.2 WCF服务契约
[ServiceContract(Name = "JuameService
