<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
    主站蜘蛛池模板: 99精品视频在线观看免费播放| 91麻豆最新在线人成免费观看| 亚洲热妇无码AV在线播放| 日本高清高色视频免费| 国产亚洲精品影视在线| 精品亚洲成α人无码成α在线观看| 国产高清不卡免费视频| 亚洲av乱码中文一区二区三区| 亚洲美女又黄又爽在线观看| 可以免费看的卡一卡二| 亚洲一级片免费看| 亚洲综合无码无在线观看| 久久精品国产亚洲AV不卡| 免费观看AV片在线播放| 中文字幕免费视频精品一| 在线亚洲午夜片AV大片| 亚洲高清国产AV拍精品青青草原| 性色av免费观看| 久久久久久久99精品免费观看| 亚洲av无码有乱码在线观看| 亚洲国产成人久久精品动漫| 免费成人在线观看| 色se01短视频永久免费| 免费无码作爱视频| 美女被免费视频网站a| 亚洲免费网站在线观看| 亚洲国产成人一区二区三区| 国产成人免费永久播放视频平台| 最近免费mv在线电影| 久久免费视频一区| 免费毛片毛片网址| 亚洲精品无码少妇30P| 亚洲熟妇av一区| 久久精品国产96精品亚洲 | 无码国产精品一区二区免费16 | 中国亚洲女人69内射少妇| 日本免费v片一二三区| 在线观看无码AV网站永久免费 | 国产精品久久久久久久久久免费 | 国产精彩免费视频| 久草免费手机视频|