`
xiangxingchina
  • 浏览: 520326 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用ksoap2 for android 调用WebService

    博客分类:
  • ws
阅读更多

1,建立WebService服务器
    这里使用Apache的axis2来建立WebService,并使用RPC的方式。
    (1) 首先下载Axis,然后将解压后的webapp下面的东东拷贝到Tomcat的webapp下面,目录为/webapp/axis。去掉一些不相干的部署文本,如果classes下面的东东。
   写server-config.wsdd文件,放置到axis的WEB-INF目录下面。具体如下

 1 <? xml version="1.0" encoding="UTF-8" ?>
 2 < deployment  xmlns ="http://xml.apache.org/axis/wsdd/"
 3     xmlns:java ="http://xml.apache.org/axis/wsdd/providers/java" >
 4
 5      < globalConfiguration >
 6          < parameter  name ="sendMultiRefs"  value ="true"   />
 7          < parameter  name ="disablePrettyXML"  value ="true"   />
 8          < parameter  name ="dotNetSoapEncFix"  value ="true"   />
 9          < parameter  name ="enableNamespacePrefixOptimization"  value ="false"   />
10          < parameter  name ="sendXMLDeclaration"  value ="true"   />
11          < parameter  name ="sendXsiTypes"  value ="true"   />
12          < parameter  name ="attachments.implementation"
13             value ="org.apache.axis.attachments.AttachmentsImpl"   />
14      </ globalConfiguration >
15
16      < handler  type ="java:org.apache.axis.handlers.http.URLMapper"
17         name ="URLMapper"   />
18      < service  name ="HelloService"  provider ="java:RPC" >
19          < parameter  name ="className"  value ="cn.vaga.testws.HelloService"   />
20          < parameter  name ="scope"  value ="request"   />
21          < parameter  name ="allowedMethods"  value ="*"   />
22         
23          < operation  name ="sayHello"  qname ="operNS:sayHello"  xmlns:operNS ="http://testws.vaga.cn"  returnQName ="sayHelloResult"  returnType ="rtns:ListOfHello"  xmlns:rtns ="http://testws.vaga.cn"   />
24  
25      < typeMapping
26         xmlns:ns ="http://localhost:8080/TestWS/services/HelloService"
27        qname ="ns:ListOfHello"
28        type ="java:java.lang.String[]"
29        serializer ="org.apache.axis.encoding.ser.ArraySerializerFactory"
30        deserializer ="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
31        encodingStyle ="http://schemas.xmlsoap.org/soap/encoding/"
32       />     
33          < messageReceiver
34              class ="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"   />
35             
36
37      </ service >
38      < transport  name ="http" >
39          < requestFlow >
40              < handler  type ="URLMapper"   />
41          </ requestFlow >
42      </ transport >
43 </ deployment >

   (2) 写业务类HelloService.java

  
 1 package  cn.vaga.testws;
 2
 3
 4 public   class  HelloService {
 5      public  String[] sayHello() {
 6          return   new  String[] { " www " , " 1232 " , " 12dd " } ;
 7     }

 8     
 9      public  String sayHelloToPerson(String name) {
10           if (name  ==   null   ||   "" .equals(name)) {
11               name  =   " nobody " ;
12          }

13          
14           return   " Hello  "   +  name;
15     }

16 }

    然后将编译好的class文件放置到axis/WEB-INF/classes下面,注意包结构。启动Tomcat。
   (3) 在浏览器中输入http://192.168.1.110:8080/TestWS/services/HelloService?wsdl ,OK,如果出现了XML代码表示你成功了。

2、使用ksoap2的客户端
     (1) 建立客户端类

 1 package  cn.vaga.testwsclient;
 2
 3 import  java.util.List;
 4 import  java.util.Vector;
 5
 6 import  org.ksoap2.SoapEnvelope;
 7 import  org.ksoap2.serialization.SoapObject;
 8 import  org.ksoap2.serialization.SoapSerializationEnvelope;
 9 import  org.ksoap2.transport.AndroidHttpTransport;
10
11 public   class  Client   {
12      private   static   final  String NAMESPACE  =   " http://testws.vaga.cn " ;    
13      private   static  String URL  =   " http://192.168.1.110:8080/TestWS/services/HelloService " ;
14      private   static   final  String METHOD_NAME  =   " sayHello " ;
15      private   static  String SOAP_ACTION  =  NAMESPACE  +   " / "   +  METHOD_NAME; 
16      public   static  String getHello()  {
17          try   {
18             SoapObject rpc  =   new  SoapObject(NAMESPACE, METHOD_NAME);
19             //  rpc.addProperty("theCityName", cityName);
20
21             AndroidHttpTransport ht  =   new  AndroidHttpTransport(URL);
22             ht.debug  =   true ;
23
24             SoapSerializationEnvelope envelope  =   new  SoapSerializationEnvelope(
25                     SoapEnvelope.VER11);
26             
27             envelope.bodyOut  =  rpc;
28             envelope.dotNet  =   true ;
29             envelope.setOutputSoapObject(rpc);
30
31             ht.call(SOAP_ACTION, envelope);
32             
33 //             debug(LOG_TAG, "DUMP>> " + ht.requestDump);
34 //             debug(LOG_TAG, "DUMP<< " + ht.responseDump);
35
36             SoapObject result  =  (SoapObject) envelope.bodyIn;
37             Vector vrct  =  (Vector) result.getProperty( " sayHelloResult " );
38              for ( int  i  =   0 ; i  <  vrct.size();i ++ ) {
39                 System.out.println( vrct.get(i));
40             }

41             String ss  =   "" ;
42 //            for(String s : res){
43 //                ss += s;
44 //            }
45            
46             return  ss;
47         }
  catch  (Exception e)  {
48             e.printStackTrace();
49         }

50          return   null ;
51     }

52
53 }

54
55


    (2) 建好后,写一个main方法调用它就可以了。

最后,ksoap2非常的小,一百多K吧,使用它我们可以在Android程序中方便的调用WebService,而不用加载那些庞大的jar包。
最后给一个ksoap2 for android的下载地址

注意:将扩展名改为jar即可!
分享到:
评论

相关推荐

    Android中ksoap2-android调用WebService 实现天气预报

    ksoap2-android是一个轻量级的库,专为Android平台设计,用于调用基于SOAP的Web服务。SOAP(Simple Object Access Protocol)是一种用于交换结构化信息的协议,常用于Web服务。在这个教程中,我们将探讨如何使用...

    Android调用Webservice使用的ksoap2包

    本文将详细介绍如何使用Ksoap2来调用.NET WebService。 1. **理解SOAP**: SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。它定义了一种标准的消息结构,允许不同系统之间的应用程序进行通信,...

    Android 使用ksoap2调用Webservice实例

    使用ksoap2调用Webservice实例 需将lib文件夹设置为源文件夹 在AndroidManifest.xml文件中加入&lt;uses-permission android:name="android.permission.INTERNET" /&gt;

    Android使用ksoap2+协程+handler实现WebService

    2. 创建协程:在需要调用WebService的地方,使用`launch`或`async`函数启动一个协程,确保在主线程之外执行网络请求。 ```kotlin CoroutineScope(Dispatchers.IO).launch { // WebService调用代码 } ``` 3. 使用...

    ksoap2-android...3.30.jar

    ksoap2-android调用WebService 在Android中应用中的jar

    ksoap2完整版jar包 Android调用webservice

    2. **Android调用Web Service** 在Android应用中调用Web Service,通常需要以下步骤: - 创建一个SoapObject,定义请求的命名空间和方法名。 - 设置参数,将需要传递的数据添加到SoapObject中。 - 创建...

    ksoap2-android-3.6.4.zip

    使用ksoap2-android进行Web Service调用的基本步骤如下: 1. **添加依赖**:在你的Android项目中,你需要将ksoap2-android-3.6.4.jar包导入到项目的lib目录下,然后在构建路径中包含这个库。如果是使用Gradle构建...

    使用KSOAP2调用WebService

    本文将详细介绍如何在Android应用中使用KSOAP2来调用WebService。 首先,为了在Android项目中使用KSOAP2,你需要下载并添加对应的jar文件。你可以从Google Code仓库...

    ksoap2.jar 调用webservice

    而ksoap2是一个轻量级的开源库,专为Android平台设计,用于调用Web Service,尤其是SOAP(Simple Object Access Protocol)服务。在Android应用开发中,ksoap2.jar扮演着至关重要的角色,它允许开发者通过HTTP协议与...

    ksoap2-android-demo-webService 完整代码

    Android使用ksoap2-android调用WebService学习,代码来自:http://blog.csdn.net/eyu8874521/article/details/9125987 原代码中的数据源已失效,我只是修改了新数据源。 运行前先去 http://WebXml.com.cn/ 网站注册...

    android调用webservice jar包

    android中调用webservice:ksoap2.jar

    在android中使用KSOAP2调用webservice

    总之,在Android中使用KSOAP2调用Web Service涉及了构建SOAP请求、设置参数、发送请求以及解析响应等多个环节。理解并熟练掌握这些步骤对于构建与服务器交互的应用至关重要。通过KSOAP2,开发者可以轻松地将Android...

    android 调用 Webservice源码

    总之,Android调用Webservice源码的示例是一个很好的学习资源,它展示了Android客户端如何利用ksoap2库与C#编写的Web服务进行交互。通过理解这个示例,开发者可以更好地掌握Android与Web服务的集成技术,为自己的...

    Android调用WebService

    总结,Android调用WebService涉及了多种技术,包括选择合适的协议(如SOAP或RESTful),引入相应的库,构建和发送请求,以及处理返回的结果。理解这些知识点,并结合实际的AndroidWSDemo项目,将有助于你在实际开发...

    Android 采用KSOAP2方式访问WebService

    本篇文章将深入探讨如何在Android中利用KSOAP2库来访问和使用WebService。 1. **SOAP与KSOAP2简介** SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在分布式环境中交换结构化和类型化信息。...

    Android之Webservice详解与调用天气预报Webservice完整实例

    综上所述,这个实例涵盖了Android调用Web Service的基本流程,从理解Web Service的概念,到选择合适的库(如Ksoap2),再到构建请求、解析响应、处理异常以及UI显示。通过这个实例,开发者可以掌握在Android平台上...

    android用ksoap2调用webservice接口查询

    下面将详细讲解如何在Android中使用KSOAP2来调用Webservice接口进行查询操作。 首先,了解SOAP。SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。它允许应用程序通过HTTP协议发送和接收数据,...

    ksoap2-android-assembly-3.6.2-jar 下载

    在Android平台调用Web Service需要依赖于第三方类库ksoap2,它是一个SOAP Web service客户端开发包。此jar包用于android和webservice进行通信,目前版本3.6.2

Global site tag (gtag.js) - Google Analytics