本文关于操作系统及数据库及计算机科学方面的免费优秀学术论文范文,操作系统类论文范文集,与Android客户端访问WebService的实现相关硕士学位毕业论文范文,对不知道怎么写操作系统论文范文课题研究的大学硕士、本科毕业论文开题报告范文和文献综述及职称论文的作为参考文献资料下载。
【摘 要 】在Android手机平台的程序开发过程中,有时需要用客户端来访问服务器的数据,这时通常是用Web Service的形式来访问.本文将介绍如何用Android手机客户端来访问远程的Web服务器数据.
【关 键 词 】Android客户端;数据访问;Web Service
一、Android手机平台
Android手机平台是Google公司推出的基于Linux内核的嵌入式操作系统平台,不仅应用于智能手机,还广泛应用于平板电脑以及其他便携式设备[2].Android操作系统是一个开放的操作系统,它是基于JA的系统,运行在Linux 2.6核上.在Android软件系列中包括了操作系统、中间件和一些关键应用.Android SDK提供多种开发所必要的工具与API,这使得开发人员可以很方便的进行应用软件的开发,大大提高了开发的效率.
二、Web Service
Web Services是一种基于SOAP协议的远程调用标准.通过Web Services可以将不同操作系统平台,不同语言、不同技术整合到一起.PC版本的Web Services客户端类库非常丰富,例如,Axis2、CXF等,但这些类库对于Android系统过于庞大.适合手机的Web Services客户端类库也有一些.比较常用的为Ksoap2.
1.SOAP简介
简单对象访问协议(SOAP)是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息.SOAP可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(TP),多用途网际邮件扩充协议(MIME).它还支持从消息系统到远程过程调用(RPC)等大量的应用程序.
2.Web Service功能
Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Inter来访问并使用这项在线服务.用简单点的话说,就是系统对外的接口!它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的Web Services应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用.Web Services是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Services,通过Web Services内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能.一旦部署以后,其他Web Services应用程序可以发现并调用它部署的服务.
三、使用Ksoap2访问Web Service
通过以上的分析,接下来我们采用一个例子来说明如何访问Web Service.该例子中使用第三方类库(Ksoap2)来获取服务器的用户数据,然后在Android客户端中显示出来.
1.Web Service部署
本例中Web Service开发工具采用Visual Studio 2010,数据库选择SQL Server 2005,用C#来实现Web Service的接口功能.
(1)建立一个Web Service的项目MyWebService.
(2)新建一个Service1.ax的接口文件,并且新建一个WebMethod的函数方法,主要代码如下:
[WebMethod]
public UserInfo GetUserInfoById(string UID)
{
um.Open();
UserInfo ui 等于 um.GetUserInfoById(UID);
um.Close();
return ui;
}
public UserInfo GetUserInfoById(string UID)
{
string strCmd 等于 string.Format(“select * from UserInfo where UID 等于 \’{0}\’”,UID);
cmd.CommandText 等于 strCmd;
SqlDataAdapter da 等于 new SqlDataAdapter(cmd);
cmd.ExecuteNonQuery();
DataSet ds 等于 new DataSet();
da.Fill(ds);
UserInfo userinfo 等于 new UserInfo();
DataRow dr 等于 ds.Tables[0].Rows[0];
userinfo.Id 等于 dr[“UID”].ToString();
userinfo.Name 等于 dr[“username”].ToString();
userinfo.Mood 等于 dr[“mood”].ToString();
userinfo.Password 等于 dr[“Password”].ToString();
return userinfo;
}
2.Ksoap2访问
在Android SDK中并没有提供调用Web Service的库,因此,需要使用第三方类库(Ksoap2)来调用Web Service.Android开发采用eclipse工具,因此要先配置好eclipse的开发环境. (1)下载Ksoap2包:打开网址http://code.google./p/ksoap2-android/将下载后的jar文件复制到Eclipse工程的lib目录中(如果没有该目录,可以新建一个,当然,也可以放在其他的目录中),并在Eclipse工程中引用这个jar包.右键点击Project->Propertied->Ja Build Path->Libraries->Add External JARs->选择ksoap2-android-assembly-2.4-jar-with-dependencies.jar.
(2)在目录“res—>layout”底下新建一个用户详细信息页面frienddetail.xml,对该前台页面进行设计,如图1所示.
(3)接下来便是后台编写访问代码,利用Ksoap2来获取服务器的数据,然后将值赋给前台页面,其后台主要代码如下:
//以下是后台主要代码
private String NAMESPACE等于” http://tempuri./”;
private Context context;
protected static final String URL2 等于 “http://10. 0.2.2:2216/Service1.ax”;
private void initList() {
// TODO 访问数据库获取所有成员数据,更新 data 变量
SoapObject rpc 等于 new SoapObject(NAMESPACE,”GetUserInfoById”);
rpc.addProperty( “UID”,memberid);
HttpTransportSE aht 等于 new HttpTranspo-rtSE(URL2);
aht.debug 等于 true;
SoapSerialization-Envelope envelope 等于 new SoapSerializ-ation-Envelope(
SoapEnvelope.VER11);
envelope.bodyOut 等于 rpc;
envelope.dotNet 等于 true;
envelope.setOutput-SoapObject(rpc);
try {
aht.call(NAMESPACE + “GetUserInfoBy-Id”,envelope);
} catch (Exception e) {
Toast.make
Text(this,”连接异常”,Toast.LENGTH_SHORT).show();
.printStackTrace();
}
SoapObject result 等于 (SoapObject)envel-ope.bodyIn;
SoapObject ret 等于 (SoapObject)result.getProperty(“GetUserInfoByIdResult”);
String getname等于ret.getProperty(“Name”).toString();
String getMood等于ret.getProperty(“Mood”).toString();
TextView tvName等于 (TextView) findViewById(R.id.Edit-Text01);
TextView tvMood等于 (TextView) findViewById(R.id.Edit-Text02);
tvName.setText(get-name);
tvMood.setText(ge-tMood);
}
(4)最后,Android客户端允许访问网络,必须在文件AndroidManifest中添加如下代码.
四、结束语
Android开发的过程中,实现网络服务器的访问是比较常用到的,通过ksoap可以很方便的实现Web Service的访问功能,本文只是其中的一种访问方法,还可以使用其他方法进行访问调用.