android的webservice.docx

上传人:b****5 文档编号:3025186 上传时间:2022-11-17 格式:DOCX 页数:37 大小:750.52KB
下载 相关 举报
android的webservice.docx_第1页
第1页 / 共37页
android的webservice.docx_第2页
第2页 / 共37页
android的webservice.docx_第3页
第3页 / 共37页
android的webservice.docx_第4页
第4页 / 共37页
android的webservice.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

android的webservice.docx

《android的webservice.docx》由会员分享,可在线阅读,更多相关《android的webservice.docx(37页珍藏版)》请在冰豆网上搜索。

android的webservice.docx

android的webservice

Android调用WebService

WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同操作系统平台、不同语言、不同技术整合到一块。

在AndroidSDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。

PC版本的WEbservice客户端库非常丰富,例如Axis2,CXF等,但这些开发包对于Android系统过于庞大,也未必很容易移植到Android系统中。

因此,这些开发包并不是在我们的考虑范围内。

适合手机的WebService客户端的SDK有一些,比较常用的有Ksoap2,可以从

下载的地址

也可以在下面的地址下载:

 点Viewrawfile才正确下载对应文件的。

Axis2和webservce服务端和客户端的实现

新建一个web项目,在配置的时候

下载两个包:

 axis2-1.6.1-bin.zip  axis2.war

axis2.war文件放到tomcat服务器的webapps目录下

   axis2.war文件放到tomcat服务器的webapps目录下。

   

 浏览器地址:

点击打开链接  表明axis2服务器端部署成功。

  

  客户端可以用axis2-bin包中提供的wsdl2java.bat工具实现。

首先得配置环境。

 

(1)设置环境变量:

 

  

  

  找到%AXIS2_HOME%\bin目录下的wsdl2java.bat.打开修改一下。

  找到set_RUNJAVA="%JAVA_HOME%\bin\java"这一行下面加上一行

     setJAVA_OPTS="-Djava.ext.dirs=%AXIS2_HOME%\lib"

   

   eclipse下创建axis2clientproject

   cmd进入axis2client目录生成存根代码

   运行命令:

   WSDL2java–uri http:

//localhost:

8080/axis2/services/helloService?

wsdl

   

服务端

新建—>javaweb项目—>

在上面的页面中,配置好Axis2的基本的信息配置,点击ok,

目录如下:

在eclipse的标头上多了一个

接下来我们可以在此测试我们的axis2服务器

在服务端实现一个简单的加法运算

服务端的java代码:

packagexawl.unit.org;

publicclassService{

publicintadd(intx,inty){

System.out.println("**********调用了add方法**************");

returnx+y;

}

publicintsub(intx,inty){

System.out.println("**********调用了sub方法**************");

returnx-y;

}

publicStringgetName(){

return"********************";

}

}

客户端:

在客户端实现得到在web服务端的到的结果返回给android的客户端。

实现的代码如下:

packagecom.example.androidclient;

importjava.io.IOException;

importorg.ksoap2.SoapEnvelope;

importorg.ksoap2.serialization.SoapObject;

importorg.ksoap2.serialization.SoapSerializationEnvelope;

importorg.ksoap2.transport.HttpTransportSE;

importorg.xmlpull.v1.XmlPullParserException;

importandroid.annotation.SuppressLint;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.Menu;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.Toast;

publicclassMainActivityextendsActivityimplementsOnClickListener{

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Buttonbutton=(Button)this.findViewById(R.id.button1);

button.setOnClickListener(this);

}

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

getMenuInflater().inflate(R.menu.activity_main,menu);

returntrue;

}

publicvoidonClick(Viewv){

switch(v.getId()){

caseR.id.button1:

Stringnamespace="http:

//org.unit.xawl";

Stringwsalurl="http:

//10.0.2.2:

8080/webtest/services/Service";

Stringwebmethod="add";//doCalculate是Calculate类中的方法名zi

//

StringsoapAction=namespace+webmethod;

SoapObjectrequest=newSoapObject(namespace,webmethod);

//doCalculate(num1,num2)

request.addProperty("x",14);

request.addProperty("y",15);

//调用

SoapSerializationEnvelopeenvelope=

newSoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.bodyOut=request;//保存服务返回的值

HttpTransportSEse=newHttpTransportSE(wsalurl);

try{

//envelope装的是带有参数的一个核心的对象

//

se.call(soapAction,envelope);

if(envelope.getResponse()!

=null){

Objectresult=envelope.getResponse();

//SoapObjectresult1=(SoapObject)envelope.getResponse();

Toast.makeText(this,result.toString(),Toast.LENGTH_LONG).show();

}

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}catch(XmlPullParserExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

break;

default:

break;

}

}

}

实现的效果如下:

Android调用天气预报的WebService简单例子

新建一个android的项目,构建项目的类库,将

ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar添加到类库中

接下来按以下的步骤来调用webservice

1.指定WebService的命名空间和调用方法

privatestaticfinalStringNAMESPACE="http:

//WebX

privatestaticfinalStringMETHOD_NAME="getWeatherbyCityName";

SoapObjectrpc=newSoapObject(NAMESPACE,METHOD_NAME);

SoapObject类的第一个参数表示WebService的命名空间,可以从WSDL文档中找到WebService的命名空间。

第二个参数表示要调用的WebService方法名。

2.设置调用方法的参数,如果没有参数,可以省略。

rpc.addProperty("theCityName","北京");

3.生成webservice的SOAP请求。

SoapSerializationEnvelopeenvelope=newSoapSerializatio

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1