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

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

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

    歡迎使用我的 在線工具

    小D

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

    使用ksoap2 for android 調(diào)用WebService

    1,建立WebService服務(wù)器
        這里使用Apache的axis2來(lái)建立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) 寫業(yè)務(wù)類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下面,注意包結(jié)構(gòu)。啟動(dòng)Tomcat。
       (3) 在瀏覽器中輸入http://192.168.1.110:8080/TestWS/services/HelloService?wsdl,OK,如果出現(xiàn)了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) 建好后,寫一個(gè)main方法調(diào)用它就可以了。

    最后,ksoap2非常的小,一百多K吧,使用它我們可以在Android程序中方便的調(diào)用WebService,而不用加載那些龐大的jar包。
    最后給一個(gè)ksoap2 for android的下載地址
    注意:將擴(kuò)展名改為jar即可!

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

    評(píng)論

    # re: 使用ksoap2 for android 調(diào)用WebService[未登錄](méi)  回復(fù)  更多評(píng)論   

    能實(shí)現(xiàn)嗎
    2012-04-09 16:47 | bb

    # re: 使用ksoap2 for android 調(diào)用WebService  回復(fù)  更多評(píng)論   

    我這里不是實(shí)現(xiàn)了嗎?@bb
    2012-05-16 09:04 | vagasnail

    # re: 使用ksoap2 for android 調(diào)用WebService  回復(fù)  更多評(píng)論   

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

    # re: 使用ksoap2 for android 調(diào)用WebService  回復(fù)  更多評(píng)論   

    @398774558@qq.com
    沒(méi)有測(cè)試過(guò),但如果GPRS上面有問(wèn)題,那也只能是網(wǎng)絡(luò)問(wèn)題了。
    2013-09-05 11:39 | vagasnail
    主站蜘蛛池模板: 日本免费一区二区三区| 成人免费一区二区无码视频| 亚洲成av人影院| 国产成人精品久久免费动漫| 亚洲精品成a人在线观看夫| 久久99亚洲综合精品首页| 久久精品免费观看国产| 亚洲av无码专区在线观看亚| 中文亚洲AV片在线观看不卡| 国产91免费视频| 色屁屁在线观看视频免费| 亚洲卡一卡2卡三卡4卡无卡三| 成年男女免费视频网站| a一级毛片免费高清在线| 亚洲国产精品张柏芝在线观看 | 中文字幕免费视频| 日本亚洲欧美色视频在线播放| 亚洲乱码中文字幕久久孕妇黑人| 在线观看无码AV网站永久免费 | 亚洲国产午夜精品理论片在线播放| 4338×亚洲全国最大色成网站| 国产91免费在线观看| 一级毛片大全免费播放下载| 亚洲日本在线观看网址| 一本色道久久综合亚洲精品高清 | 国产在线不卡免费播放| 午夜视频在线免费观看| 美女露100%胸无遮挡免费观看| 亚洲第一页在线播放| 久久久久亚洲AV无码专区网站| 成年人在线免费看视频| 3d动漫精品啪啪一区二区免费| 国产高清视频免费在线观看| 亚洲精品无码成人片久久不卡 | 国产成人高清精品免费软件| 99re在线免费视频| 黄视频在线观看免费| 精品国产亚洲AV麻豆| 亚洲va在线va天堂va手机| 国产成人亚洲精品青草天美| 亚洲高清无码综合性爱视频|