SoapObject


  1 SOAP協議整合Android+Webservice

   通過http協議,采用HttpClient向服務器端action請求數據。當然調用服務器端方法獲取數據並不止這一種。WebService也可以為我們提供所需數據,那么什么是webService呢?,它是一種基於SAOP協議的遠程調用標准,通過webservice可以將不同操作系統平台,不同語言,不同技術整合到一起。我們在Android開發pc端需要一些庫,比如本次項目中用到的:ksoap2-android-assembly-2.4-jar-with-dependencies.jar庫。

  2 基於SOAP協議訪問WebService方法

第一:實例化SoapObject 對象,指定webService的命名空間(從相關WSDL文檔中可以查看命名空間),以及調用方法名稱。如:

SoapObject request=new SoapObject(“http://tempuri.org/”,”EVoucherInquriyHistory” );

  第二步:假設方法有參數的話,設置調用方法參數

                                         request.addProperty("參數名稱","參數值");

   第三步:設置SOAP請求信息(參數部分為SOAP協議版本號,與你要調用的webService中版本號一致):

                               SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);

                                                      envelope.bodyOut=request;

   第四步:注冊Envelope

(new MarshalBase64()).register(envelope);

  第五步:構建傳輸對象,並指明Web文檔URL:

String serviceURL = Constants.EVOUCHER_URL; 

AndroidHttpTransport ht = new AndroidHttpTransport(serviceURL);

                                                             ht.debug = true;

 第六步:調用WebService(其中參數為1:命名空間+方法名稱,2:Envelope對象)

                     ht.call(serviceNameSpace+methodName, envelope);

如:              ht.call((“http://tempuri.org/EVoucherInquriyHistory”, envelope);

 第七步:獲取返回結果

                            SoapObject result = (SoapObject) envelope.bodyIn;

  3 SoapObject 解析

          SoapObject  soapChild=(SoapObject)result.getProperty(int);

          For(int i=0; i<soapChild.getPropertyCount();i++){

                    SoapObject  soapChilds=(SoapObject)result.getProperty(i);

                    String data=soapChilds.getProperty(“Key_Name”).toString();

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM