Android調用Webservice


Google為Android平台開發Web Service客戶端提供了ksoap2-android項目,在這個網址下載開發包http://code.google.com/p/ksoap2-android/source/browse/m2-repo/com/google/code/ksoap2-android/ksoap2-android-assembly/3.1.0/ksoap2-android-assembly-3.1.0-jar-with-dependencies.jar

使用 kspoap2-android調用webserice操作的步驟如下:

  1、創建HttpTransportSE傳說對象 傳入webservice服務器地址

  1. final HttpTransportSE httpSE = new HttpTransportSE(SERVER_URL);  

  2、 創建SoapObject對象,創建該對象時需要傳入所要調用Wb Service的命名空間、Web Service方法名;如果有參數要傳給Web Service服務器,調用SoapObject對象的addProperty(String name,Object value)方法來設置參數,該方法的name參數指定參數名;value參數指定參數值

  1. SoapObject soapObject = new SoapObject(PACE, M_NAME);  
  1. soapObject.addProperty("byProvinceName ", citys);  

3、創建SoapSerializationEnelope對象,並傳入SOAP協議的版本號;並設置對象的bodyOut屬性

  1. final SoapSerializationEnvelope soapserial = new SoapSerializationEnvelope(  
  2.             SoapEnvelope.VER11);  
  3.     soapserial.bodyOut = soapObject;  
  4.     // 設置與.NET提供的Web service保持有良好的兼容性  
  5.     soapserial.dotNet = true;  

  6、調用HttpTransportSE對象的call()方法,其中call的第一個參數soapAction,第二個為SoapSerializationEvelope對象 調用遠程Web Service;

  1. // 調用HttpTransportSE對象的call方法來調用 webserice  
  2.    httpSE.call(PACE + M_NAME, soapserial);  

   7、獲取返回的信息,並解析

  1. // 獲取服務器響應返回的SOAP消息  
  2. SoapObject result = (SoapObject) soapserial.bodyIn;  
  3. SoapObject detail = (SoapObject) result.getProperty("getSupportProvinceResult");  
  4. //解析返回信息  
  5. for (int i = 0; i < detail.getPropertyCount(); i++) {  
  6. citys.add(detail.getProperty(i).toString());  
  7. }  


實例:通過天氣預報 Web 服務 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx來獲取聯動城市


免責聲明!

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



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