webService网络服务调用总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络服务调用总结

jacking

2013年10月29日

目录

快递通网络服务调用总结 (1)

WebServices简介 (2)

Webservices调用需要注意的问题(附案例) (2)

准备工作 (2)

相关jar包导入 (2)

相关权限添加 (3)

调用webService服务步骤 (3)

对调用过程的分析 (3)

自定义数据类型参数问题 (5)

带有自定义类型属性的自定义类型参数 (6)

自定义类型参数集合 (6)

由于项目涉及到网络通信(客户端与服务器端的数据交互),故此将之前学习到的关于网络通信的知识总结并分享给大家,如对文档中某些内容有异议,请及时沟通讨论。

通过学习了解到android的网络通信方式有含很多种,例如:基于TCP协议的网络通信、使用URL访问网络资源、使用HTTP访问网络、使用Web Services进行网络编程等等。本文档主要针对使用Web Services进行网络编程方式给以详细说明。

WebServices简介

Web services是一种部署在Web上的对象或者组件,能够通过Internet进行调用的应用程序。Web services 建立在以XML为主的开放的web规范技术基础上,其业务逻辑对调用者来说是透明的。

Webservices调用需要注意的问题(附案例)

接下来我们结合一个案例来理解整个调用过程,针对当时开发时遇到的问题,进行详细说明。附:表达能力有限,有很多东西讲的不是很清楚,请结合附带案例看此文档,希望能帮到你

准备工作

相关jar包导入

新建android项目,将ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar放在android 项目的lib目录下,检查jar包是否如下图所示:

如果不同,选中jar包右键->build path->add to build path即可。

相关权限添加

既然是访问网络操作,就需要添加访问网络的权限:

对AndroidManifest.xml文件进行修改,添加网络权限

,如下图所示:

否则Log日志会打印缺少权限,如图:

注意:这里只添加了网络权限,如果你的项目中还涉及到其他权限,请添加相应权限

调用webService服务步骤

第一步,指定Web Services的命名空间和调用的方法名

SoapObject rpc = new SoapObject(NameSpace,methodName);

第二步,设置需要调用的web Services接口需要传入的参数

rpc.addProperty(proPertyName,proPertyValue);

第三步,生成调用Web Services方法的SOAP请求信息,并制定SOAP的版本SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10); envelope.bodyOUt = rpc;

第四步,生成调用Web Services方法的HttpTransportSE实体对象

HttpTransportSE transport = new HttpTransportSE(ServiceURL);

第五步,调用call方法请求服务

Transport.call(soapAction,envelope);

第六步,获取服务端返回的数据

SoapObject object = (SoapObject)envelope.bodyIn;

第七步,解析返回的soapObject并获取需要的数据结果

String result = object.getProPerty(0).toString();

对调用过程的分析

注意1:第一步、第四步、第五步中,涉及到调用Web Services之前需要弄清楚”NameSpace”、”methodName”、”serviceURL”、”soapAction”。这些值需要从wsdl文档中寻找,如果想对wsdl文档深入学习,请参考wsdl学习文档,本文档只说明如何从wsdl文档中找到相应的值。

将服务端提供的url地址浏览器地址栏可以看到如下界面:

通过链接访问wsdl文档,可以看到当前wsdl文档应用的所得有命名空间,内容界面如下:

在此文档中,我们也可以找到我们需要的四个重要的属性值:

命名空间:找到wsdl:definitions节点,即wsdl的根节点,找到属性targetNamespace的值,即为我们所需的命名空间nameSpace的值,如图:

服务地址:找到wsdl:service节点,找到其子节点soap:address的属性location的值,即为我们所需的服务地址serviceURL的值,如图:

方法名和SoapAction:找到wsdl:operation节点,其属性name的值即为我们所需的方法名methodName的值,其子节点soap:operation的属性SoapAction的值即为当前我们所需方法所对应的soapAction的值,如图:

至此,调用webService服务所需的最基本的四个属性值获取完成。但调用的过程中一定要保证methodName与soapAction的一一对应关系。

注意2:第二步中,涉及到设置参数。通过wsdl文件中wsdl:types节点的子节点xsd:import 通过第一个URL获取到当前服务的所有方法、每个方法的所有参数及参数类型

通过第二个URL获取到当前服务所有能直接传递的数据类型,即基本数据类型

通过第三个URL获取到当前服务所有自定义类型的参数、参数的所有属性及属性类型

相关文档
最新文档