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

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

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

    歡迎使用我的 在線工具

    小D

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

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

    1,建立WebService服務(wù)器
        這里使用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) 寫業(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)。啟動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) 建好后,寫一個main方法調(diào)用它就可以了。

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

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

    評論

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

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

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

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

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

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

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

    @398774558@qq.com
    沒有測試過,但如果GPRS上面有問題,那也只能是網(wǎng)絡(luò)問題了。
    2013-09-05 11:39 | vagasnail
    主站蜘蛛池模板: 亚洲国产区男人本色| 亚洲国产综合精品中文第一区| 日韩在线免费电影| 免费理论片51人人看电影| 69成人免费视频无码专区| 成人免费a级毛片| 成年女人毛片免费观看97| 成人a视频片在线观看免费| 亚洲人成亚洲精品| 亚洲AV日韩AV天堂久久| 久久精品国产亚洲av水果派| 亚洲国产精品一区| 亚洲最新在线视频| 亚洲13又紧又嫩又水多| va天堂va亚洲va影视中文字幕 | 成全高清视频免费观看| 天堂在线免费观看中文版| 日韩中文字幕免费| 亚洲成网777777国产精品| 久久久久亚洲精品无码网址 | 亚洲一级特黄大片在线观看| 久久久久亚洲av成人无码电影| 亚洲中文字幕无码日韩| 亚洲av色福利天堂| 亚洲成综合人影院在院播放| 亚洲熟妇无码AV不卡在线播放 | 亚洲乱人伦精品图片| 无码亚洲成a人在线观看| 又粗又长又爽又长黄免费视频 | 特级aa**毛片免费观看| 久久高潮一级毛片免费| 久久久99精品免费观看| 无码国产精品一区二区免费I6| 国产美女精品久久久久久久免费 | 岛国av无码免费无禁网站| 日韩高清在线免费看| 激情97综合亚洲色婷婷五| 久久久国产精品亚洲一区| 亚洲国产精品成人午夜在线观看| 一区二区免费国产在线观看 | 亚洲爆乳大丰满无码专区|