android平台web服务的实现原理


  168 网络安全技术与应用 2015.5  理论·广角 Android 平台 Web 服务的实现原理 陈雪梅 (广东技术师范学院 广东 510310) 【摘 要】本文介绍了 Android 平台应用程序的架构和 Web Service 的原理,探讨在 Android 平台上的使用 ksoap2 类 库访问 Web Service 的全过程,并通过开发的实例,给出实现 Web Service 调用核心技术及核心代码,可供开发人员提供解 决问题的思路。 【关键词】Android;Web Service;ksoap2-android 中图分类号:TP393.09 文献标识码:A 文章编号:1009-6833(2015)05-168-02 0 引言 Android 操作系统的体系结构可分为 4 层,由上到下依次是 应用程序、应用程序框架、核心类库和 Linux 内核,其中第三 层还包括 Android 运行时的环境。Android 连同一个核心应用程 序包一起发布,Android 上发布一个应用程序一般有两种方式: 一种是基于客户端模式(Client-Side 模式)的应用程序(基于 客户端的应用程序需要用 Android SDK 来开发,并且需要在用 户的设备上安装一个以.apk 为后缀名的文件),另一种是基于 浏览器的 web 应用程序)基于浏览器的应用程序的开发需要遵 循 web 标准,通过一个 web 浏览器来访问开发的应用程序,不 需要在用户的设备上安装其他任何程序)。在 android 环境中, 可以通过两种方式向用户提供 web 内容:一种是通过传统的浏 览器的方式,另一种则是通过在 Android 的应用程序的布局文 件中包含一个 WebView 组件的方式来实现。 1 Web 服务的核心技术及其规范 Web 服务是创建可交互操作的分布式应用程序的新平台, Web 服务一般是由企业发布的,具有特定,商业需求的在线应 用服务。为了达到跨平台操作,Web 服务是完全基于 XML、 XSD 等独立于平台、独立于软件供应商的标准的,应用软件能 够通过互联网来访问和使用这项服务,Web 服务适用于应用程 序集成、B2B 集成、代码和数据重用,以及通过 Web 进行客户 端和服务器的通信。Web 服务主要用到以下几个核心技术和规 范: (1)XML:xml 文档这里记录他能提供的各类方法接口。 描述数据的标准方法,XML 是当前处理结构化文档信息的有力 工具,是网络环境中跨平台并依赖于内容的技术,是一种简单 的数据存储语言。 (2)SOAP:表示信息交换的协议,SOAP 技术把基于 HTTP 的 Web 技术与 XML 的可扩展性相结合,实现异构程序和平台 之间的互操作性,使应用能够被不同的用户所访问。 (3)WSDL:Web 服务描述语言,WSDL 是一种用于描述 Web 服务的 XML 格式。WSDL 提供服务的详细操作信息。 ( 4 ) UDDI ( Universal Description , Discovery and Integration):通用描述、发现与集成协议,它是一种独立于平 台的,基于 XML 语言的用于在互联网上描述商务的协议。 2 Web 服务基本原理和架构 Android 中 Web 服务首先是系统的一种线程机制在运行, 线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是 比进程更小的能独立运行的基本单位.线程自己基本上不拥有 系统资源,只拥有一点在运行中必不可少的资源(如程序计数 器,一组寄存器和栈),但是它可与同属一个进程的其他的线 程共享进程所拥有的全部资源。 在线程中,服务提供者首先建立 Web 服务,然后把服务发 布给所有用户。任何平台上的用户可以通过阅读其 WSDL 文档 生成一个 SOAP 请求消息。这个 SOAP 消息嵌入到一个 HTTP POST 请求中发送到 Web 服务所在的 Web 服务器。Web 服务 器把请求转发给 Web 服务请求处理器,请求处理器解析 SOAP 请求,然后调用 Web 服务生成相应的 SOAP 应答。Web 服务器 得到 SOAP 应答后通过 HTTP 送回客户端。 KSOAP 是一个应用于资源有限的 Java 环境的 SAOP Web 服务客户端库,它一般应用在 Applets 或者 J2ME 应用程序,在 Android SDK 中没有提供调用 WebService 的库,需要使用第三 方类库(KSOAP2)来调用 WebService.Web service 以 HTTP 协 议为基础,通过 XML 进行客户端和服务器端通信的框架 / 组 件,是一个平台独立的,低耦合的,自包含的、基于可编程的 web 的应用程序,它是一种基于 SOAP 协议的远程调用标准。 通过 WebService 可以将不同操作系统平台,不同语言、不同技 术整合到一起。 图 1 为 WebService 访问的整个流程,描述原理如下: Step 1.Client 想调用一个服务,首先去 UDDI Registry 上 查找。 Step 2.UDDI 记录了某个一个叫做 Web Server A 的服务器 能提供这样的服务。 Step 3.则 Client 去 Web Server A 询问确切的调用方法。 Step 4.Web Server A 看到 Client 提出的"确切方法查询"之 后,立即返回给它一个 WSDL 描述的 xml 文档这里记录其能提 供的各类方法接口。 Step 5.Client 将 Web Server A 返回的 xml 的接口方法,封 装成为 HTTP 请求,发给 Web Server A,封装方式采用的是 标准的 SOAP 方式,实质是满足 HTTP 协议的一些 SOAP 的报 文消息。 Step 6.Web Server A 回应的也是 HTTP 协议的 SOAP 包, 这样 Client 与 Web Server A 双方的请求-响应完全畅通。 图 1 细节步骤流程图 3 实践 WebService 我们借用一个系统提供的 WebService 来获取各个各省份 中城市的天气预报为实验,实现一个在 Android 平台上利用 ksoap2 协议访问 Web Services。 首先,临时接到一个任务,要给一个 activity 做成子线程的 模式,因为 KSOAP 调用 Web 服务的时候,须另起一个线程。 子线程启动之后就开始调用 run()方法,run()是一个线程 体,创建线程的语法代码如下: private Thread newThread; new Thread(){   2015.5 网络安全技术与应用 169 理论·广角 @Override public void run(){ //这里写入子线程需要做的工作} }.start(); 然后,调用 WebService 服务应用分如下几个步骤进行: 第 1 步:创建 SoapObject 对象,并制定 Web 服务的命名空 间 SoapObject soapre = new SoapObject ( nameSpace , methodName); 第 2 步:设置 Web 服务方法的参数 soapre.addProperty("byProvinceName","江西"); 第 3 步:创建 SoapSerializationEnvelope 对象,并制定 Web 服务的版本 SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet=true; envelope.setOutputSoapObject(soapre); 第 4 步:创建 HttpTransportSE 对象,并指定 WSDL 文档 的 URL HttpTransportSE ht = new HttpTransportSE(WSDL); 第 5 步:调用 Web 服务 ht.call(nameSpace+methodName,envelope); 第 6 步:使用 getResponse 方法获得 Web 服务方法的返回 结果 SoapObject result=(SoapObject)envelope.getResponse(); int count=result.getPropertyCount(); for(int index=0;index
还剩1页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

xcjciom

贡献于2016-11-24

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf