0 寫在前面
以前都是在.NET平臺(tái)上conding,使用.NET平臺(tái)發(fā)布服務(wù),然后再在.NET的客戶端進(jìn)行調(diào)用,非常的方便,最簡(jiǎn)單的方式就是添加web服務(wù)引用,通過添加web服務(wù)引用實(shí)現(xiàn)像本地調(diào)用那樣調(diào)用web服務(wù),當(dāng)然我們也可以采用http-post、http-get和基于soap協(xié)議的方式去調(diào)用服務(wù)。
最近在弄andriod的程序,需要調(diào)用web服務(wù)器上的數(shù)據(jù),服務(wù)采用C#寫的,并部署在iis服務(wù)器上。我們可以像.NET那樣調(diào)用服務(wù)那,利用andriod庫自帶的HttpPost和HttpGet類來調(diào)用Web服務(wù)。但是wcf服務(wù)發(fā)布的一些沒有添加WebGet或者WebInvoke特性的服務(wù),都只提供基于Soap協(xié)議的服務(wù)調(diào)用方式。雖然soap協(xié)議也是基于Http協(xié)議,也可以使用HttpPost類來進(jìn)行調(diào)用,但拼湊soap結(jié)構(gòu)體是比較麻煩,好在Ksoap2包提供了調(diào)用web服務(wù)的方法,而且還比較好的兼容了.NET平臺(tái)發(fā)布的服務(wù)。因此本文總結(jié)在Andriod中如何使用Ksoap2來調(diào)用.NET平臺(tái)的服務(wù),通過傳遞基類型和復(fù)雜類型對(duì)比調(diào)用.NET服務(wù)發(fā)布的WCF服務(wù)和WebService服務(wù)之間的區(qū)別。本文的末尾提供Ksoap2包的下載。
1 WCF服務(wù)
我們?cè)诜?wù)中提供兩個(gè)方法,一個(gè)計(jì)算整數(shù)加法,另一個(gè)接受People對(duì)象并且返回People信息(string)。
1.1 People的數(shù)據(jù)契約
[DataContract]public class People{ [DataMember] public i