android开发调用自定义的webservice
来源:互联网 发布:js 不等于undefined 编辑:程序博客网 时间:2024/05/01 11:00
在上一篇,我们开发了自定义的service:使用MyEclipse开发webservice,今天我们用android程序调用自定义的webservice接口:
在浏览器输入http://192.168.0.5:8080/TestService/MyServicePort?wsdl
其中MyServicePort是webservice服务器端的sun-jaxws.xml文件中的url-pattern="/MyServicePort"
注意这里的192.168.0.5是我本机的ip地址,需要改为自己的ip地址,如下图:
3.建立android客户端:
点击Add Externl JARS
添加ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar包
注意在android客户端调用webservice时涉及到连接网络,所以
需要注意的是:当服务器端返回的是二进制形式的时候,则
SoapObject object = (SoapObject) envelope.getResponse();
否则
SoapObject object = (SoapObject) envelope.bodyIn;
当android客户端向androidservice服务端传递方法所需要的多个参数时候:
// 指定WebService的命名空间和调用的方法名 SoapObject rpc = new SoapObject(NAMESPACE, "add"); // 设置需调用WebService接口需要传入的两个参数mobileCode、userId rpc.addProperty("arg0",Integer.parseInt(one.getText().toString())); rpc.addProperty("arg1",Integer.parseInt(two.getText().toString()));
1.添加权限:<uses-permission android:name="android.permission.INTERNET"/>
2.新建线程,让那些步骤在新线程中执行
关键代码如下:
//命名空间
String NAMESPACE = "http://webservice.test.liuhang.com/";
//调用的方法名 String methodName = "sayHello";//endPointString endPoint = "http://192.168.0.5:8080/TestService/MyServicePort?wsdl";// 指定WebService的命名空间和调用的方法名 SoapObject rpc = new SoapObject(NAMESPACE, methodName); // 设置需调用WebService接口需要传入的两个参数mobileCode、userId rpc.addProperty("arg0","hahaaa"); // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本 final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = false;envelope.bodyOut = rpc; envelope.setOutputSoapObject(rpc); final HttpTransportSE transport = new HttpTransportSE(endPoint); <span style="white-space:pre"></span>new Thread(){public void run() {try { <span style="white-space:pre"></span>// 调用WebService transport.call(null, envelope); if(envelope.getResponse()!=null){ // 获取返回的数据 SoapObject object = (SoapObject) envelope.bodyIn; String result= object.getProperty(0).toString(); Message message = new Message();Bundle bundle = new Bundle();bundle.putString("result",result);<span style="white-space:pre"></span>message.setData(bundle);message.what = 1;handler.sendMessage(message);} } catch (Exception e) { <span style="white-space:pre"></span>e.printStackTrace(); } <span style="white-space:pre"></span>};}.start();
源码下载
- android开发调用自定义的webservice
- Android调用Xfire开发的java-webservice
- android调用webservice传递自定义类以及类的集合
- 【WebService开发】其他调用webservice的方法
- WebService的开发、部署、调用
- WebService的开发、部署、调用
- WebService的开发、部署、调用
- WebService的开发、部署、调用
- WebService的开发、部署、调用
- WebService的开发、部署、调用
- WebService的开发、部署、调用
- android 调用.net 的webservice
- android 调用.net 的webservice .
- android与webservice的调用
- Android调用C#的WebService
- Android开发之如何调用WebService
- Android开发中webService接口调用示例
- Android开发系列之调用WebService
- 仿站
- JAVA编程思想(第4版)赋值小结
- windows程序设计 处理消息
- XML--DTD
- 基于Eclipse的Kelab环境配置
- android开发调用自定义的webservice
- JavaGUI——AWT
- 关于linux的各种信号
- 历年试题 矩阵翻硬币 (蓝桥杯)
- iOS-证书
- sicily 1140(搜索)
- uvalive 3027(并查集)
- 攻略世界树 (网络流)
- Thread Synchronization and Object locks inside JVM