Android調(diào)用Web服務
現(xiàn)在大部分應用程序都把業(yè)務邏輯處理,數(shù)據(jù)調(diào)用等功能封裝成了服務的形式,應用程序只需要調(diào)用這些web服務就好了,在這里就不贅述web服務的優(yōu)點了。本文總結如何在android中調(diào)用Web服務,通過傳遞基類型和復雜類型對比調(diào)用.NET平臺發(fā)布的WCF服務和WebService服務之間的區(qū)別。
0 寫在前面
以前都是在.NET平臺上conding,使用.NET平臺發(fā)布服務,然后再在.NET的客戶端進行調(diào)用,非常的方便,最簡單的方式就是添加web服務引用,通過添加web服務引用實現(xiàn)像本地調(diào)用那樣調(diào)用web服務,當然我們也可以采用http-post、http-get和基于soap協(xié)議的方式去調(diào)用服務。
最近在弄andriod的程序,需要調(diào)用web服務器上的數(shù)據(jù),服務采用C#寫的,并部署在iis服務器上。我們可以像.NET那樣調(diào)用服務那,利用andriod庫自帶的HttpPost和HttpGet類來調(diào)用Web服務。但是wcf服務發(fā)布的一些沒有添加WebGet或者WebInvoke特性的服務,都只提供基于Soap協(xié)議的服務調(diào)用方式。雖然soap協(xié)議也是基于Http協(xié)議,也可以使用HttpPost類來進行調(diào)用,但拼湊soap結構體是比較麻煩,好在Ksoap2包提供了調(diào)用web服務的方法,而且還比較好的兼容了.NET平臺發(fā)布的服務。因此本文總結在Andriod中如何使用Ksoap2來調(diào)用.NET平臺的服務,通過傳遞基類型和復雜類型對比調(diào)用.NET服務發(fā)布的WCF服務和WebService服務之間的區(qū)別。本文的末尾提供Ksoap2包的下載。
1 WCF服務
我們在服務中提供兩個方法,一個計算整數(shù)加法,另一個接受People對象并且返回People信息(string)。
1.1 People的數(shù)據(jù)契約
[DataContract] public class People {
[DataMember] public int Age;
[DataMember] public string Name;
}
2.2 WCF服務契約
[ServiceContract(Name = "JuameService