<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    歡迎使用我的 在線工具

    小D

    讀歷史、看小說、寫程序都是我所愛。技術不好,頭腦不靈光,靠的是興趣。
    隨筆 - 35, 文章 - 25, 評論 - 13, 引用 - 0
    數據加載中……

    使用ksoap2 for android 調用WebService

    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
      
     1package cn.vaga.testws;
     2
     3
     4public 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) 建立客戶端類
     1package cn.vaga.testwsclient;
     2
     3import java.util.List;
     4import java.util.Vector;
     5
     6import org.ksoap2.SoapEnvelope;
     7import org.ksoap2.serialization.SoapObject;
     8import org.ksoap2.serialization.SoapSerializationEnvelope;
     9import org.ksoap2.transport.AndroidHttpTransport;
    10
    11public 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即可!

    posted on 2011-05-07 19:12 vagasnail 閱讀(5565) 評論(4)  編輯  收藏 所屬分類: javaAndroid

    評論

    # re: 使用ksoap2 for android 調用WebService[未登錄]  回復  更多評論   

    能實現嗎
    2012-04-09 16:47 | bb

    # re: 使用ksoap2 for android 調用WebService  回復  更多評論   

    我這里不是實現了嗎?@bb
    2012-05-16 09:04 | vagasnail

    # re: 使用ksoap2 for android 調用WebService  回復  更多評論   

    GPRS下鏈接是否通過?
    2012-12-08 22:55 | 398774558@qq.com

    # re: 使用ksoap2 for android 調用WebService  回復  更多評論   

    @398774558@qq.com
    沒有測試過,但如果GPRS上面有問題,那也只能是網絡問題了。
    2013-09-05 11:39 | vagasnail
    主站蜘蛛池模板: 免费永久在线观看黄网站| 亚洲制服中文字幕第一区| 日韩免费高清播放器| 伊人久久综在合线亚洲2019| 最新中文字幕电影免费观看| 春意影院午夜爽爽爽免费| 亚洲日本精品一区二区| 国产美女a做受大片免费| 中文字幕无码一区二区免费| 亚洲一区二区三区成人网站| 亚洲一区二区女搞男| 免费人成视频在线| 永久免费AV无码网站国产| 亚洲熟妇少妇任你躁在线观看| 亚洲日产无码中文字幕| 午夜神器成在线人成在线人免费| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 最近中文字幕mv免费高清视频8| 亚洲码欧美码一区二区三区| 亚洲av无码片在线播放| 免费国产精品视频| 黄色成人网站免费无码av| a毛看片免费观看视频| 99亚洲乱人伦aⅴ精品| 久久久久久亚洲精品成人| 亚洲国产一成久久精品国产成人综合 | 亚洲精品国产精品乱码视色| 拔擦拔擦8x华人免费久久| 24小时日本韩国高清免费| 99久久精品毛片免费播放| 国产成人精品亚洲| 亚洲AV成人影视在线观看| 亚洲日本一区二区三区| 亚洲乱码日产精品a级毛片久久| 成人黄18免费视频| 亚洲一级毛片免费在线观看| 全黄大全大色全免费大片| 九一在线完整视频免费观看| 亚洲变态另类一区二区三区| 亚洲天堂一区二区三区四区| 亚洲av日韩综合一区在线观看|