加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_安阳站长网 (https://www.0372zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Android调用Web服务

发布时间:2016-10-29 21:20:39 所属栏目:教程 来源:站长网
导读:副标题#e# 现在大部分应用程序都把业务逻辑处理,数据调用等功能封装成了服务的形式,应用程序只需要调用这些web服务就好了,在这里就不赘述web服务的优点了。本文总结如何在android中调用Web服务,通过传递基类型和复杂类型对比调用.NET平台发布的WCF服务

到目前为止,我们已经调用了wcf服务第一个服务,就说明传递基类型是没有问题。但是很遗憾的是,对于传递复杂类型和数组集合参数进行调用,在服务那边总是提示无法对传递进来的数据进行反序列化的错误(希望高手指点)。还好我们可以把所以的服务类型都转为json数据,通过json数据进行传递调用,就可以解决复杂类型传递的问题。

对于有强迫症的我来说,不甘心,因为在网上看了许多的教程,利用Ksoap2是可以直接传递复杂类型的来调用.NET平台的服务的。不过网上大部分教程调用的都是传统的webservice服务(asmx文件),于是我就在wcf服务项目中新建一个传统的asmx文件,提供的服务与wcf服务一样的。结果发现,果然能够利用ksoap2传递一个复杂类型来调用服务。下一节总结利用ksoap2传递复杂对象来调用传统的webservice服务。

3 传统的WebService服务

为了和wcf服务进行对比,webservice提供的服务和wcf一致,代码如下:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
// [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
    [WebMethod]
    public int Add(int op1, int op2)
    {
        return op1 + op2;
    }
    [WebMethod]
    public string PostPeopleInfo(People people)
    {
        return "姓名:" + people.Name + "/" + "年龄:" + people.Age; 
    }
}

其中WebService特性中的Namespace属性和wcf的Namespace的作用一样的。

同样的也在iis中进行发布。发布成功之后,能够访问到asmx文件。

4 Android调用WebService服务

不管是调用WCF的服务还是WebService的服务,传递基类型去调用,代码都是一样的,且能够正确的调用。下面利用复杂的People类型来调用WebService的服务。

(编辑:网站开发网_安阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!