Android开发中Web,Service网络编程研究:Android网络编程
摘要:该文介绍了在Android开发中Web Service功能的实现。并设计了一个国内手机号码归属地查询的程序,研究通过Web Ser? vice远程调用来获取数据的方式。
关键词:Android;Web Service;ksoap2
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)20-4904-03
In the Development of Android Web Service Network Programming Research
WU Zhi-yong
(Guangdong Female Polytechnic College, Guangzhou 511450, China)
Abstract: This paper describes the implement of Web Services functionality on Android platform. And design a program for inquiries to phone numbers attribution, to show the way to remote calls Web Service function.
Key words: Android; Web Service; ksoap2
Web Service是一种面向服务架构(Service-oriented architecture,SOA)的技术,目的是实现不同平台的应用服务之间的相互调用。Android作为一个市场占有率第一的移动操作系统,其网络功能是最重要的特性之一。在Android开发中通过Web Service可以方便地实现不同平台之间的方法调用,从网上获取数据信息和实现功能扩展。Web Service通过标准的Web协议提供服务。
通过Web Service实现远程方法调用,获取数据信息,最关键的问题是数据访问和传输的协议规范。
SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个分布式网络环境下用于信息交换的通讯协议。在此协议下,应用程序和软件组件可以通过标准的Web协议进行通讯。SOAP使用基于XML的可扩展消息格式,需同时绑定一个传输用协议。这个协议通常是HTTP或HTTPS,但也可以使用SMTP或XMPP。
WSDL是一个XML格式文档,用以描述服务端口访问方式和使用协议的细节。通常用来辅助生成服务器和客户端代码及配置信息。
UDDI是用来发布和搜索WEB服务的协议,应用程序可藉由此协议在设计或运行时找到目标WEB服务。
Java开发中的Web Service有很多种实现方式,如XML-RPC、XFile、Axis等等,可是这些库并不适合资源有限的Android手机客户端。在Java ME版本中,广泛使用的是KSOAP。虽然Android并不使用Java ME,但是KSOAP也有Android下的可用版本ksoap2-Android。
2.1 ksoap2-Android
kSOAP是Enhydra.org的一个开源作品,是EnhydraME项目的一部分。ksoap2-Android是ksoap2在Android下的一个移植版本,利用它可以非常方便地访问Web Service。ksoap2的常用接口有:
org.ksoap2. SoapObject
org.ksoap2. SoapEnvelope
org.ksoap2. SoapSerializationEnvelope
org.ksoap2.transport. HttpTransport
SoapObject用于创建SOAP对象,实现SOAP调用;
SoapEnvelope实现了SOAP标准中的SOAP Envelope,封装了head对象和body对象。
SoapSerializationEnvelope是ksoap2中对SoapEnvelope的扩展,支持SOAP序列化(Serialization)格式规范,可以对简单对象自动进行序列化(Simple object serialization)。
HttpTransport用于进行Internet访问/请求,获取服务器SOAP。
2.2 ksoap2-Android的编译配置
图1
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/phonenumber" /><EditText
android:id="@+id/EditTextPhoneNumber" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="phone" >
<requestFocus /></EditText><Button
android:id="@+id/btnCheck"
android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btnCheck" />
3.2查询的代码
当输入手机号码,点击查询按钮时,访问Web Service,远程调用getMobileCodeInfo方法来获得查询结果。访问Web Service的步骤如下:
