Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android中調用webservice

Android中調用webservice

編輯:關於android開發

  調用 WebService 分以下幾步:

  1、指定 WebService 的命名空間和調用方法;

  2、設置調用方法的參數值,如果沒有參數,可以省略,設置方法的參數值的代碼如下:
  rpc.addProperty("abc", "test");

  要注意的是,addProperty方法的第1個參數雖然表示調用方法的參數名,但該參數值並不一定與服務端的WebService類中的方法參數名一致,只要設置參數的順序一致即可。

  3、生成調用Webservice方法的SOAP請求信息。
  SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
  envelope.bodyOut = rpc;
  envelope.dotNet = false; //這裡如果設置為TRUE,那麼在服務器端將獲取不到參數值(如:將這些數據插入到數據庫中的話)
  envelope.setOutputSoapObject(rpc);
  創建SoapSerializationEnvelope對象時需要通過SoapSerializationEnvelope類的構造方法設置SOAP協議的版本號。
  該版本號需要根據服務端WebService的版本號設置。
  在創建SoapSerializationEnvelope對象後,不要忘了設置SOAPSoapSerializationEnvelope類的bodyOut屬性, 該屬性的值就是在第一步創建的SoapObject對象。

  4、創建HttpTransportsSE對象。
  這裡不要使用 AndroidHttpTransport ht = new AndroidHttpTransport(URL); 這是一個要過期的類
  private static String URL = "http://www.webxml.com.cn/webservices/weatherwebservice.asmx";
  HttpTransportSE ht = new HttpTransportSE(URL);
  ht.debug = true;

  5、使用call方法調用WebService方法
  private static String SOAP_ACTION = "http://WebXml.com.cn/getWeatherbyCityName";
  ht.call(SOAP_ACTION, envelope);

  6、獲得WebService方法的返回結果
  有兩種方法:
  (1)、使用getResponse方法獲得返回數據。
  (2)、使用 bodyIn 及 getProperty。

  7、 這時候執行會出錯,提示沒有權限訪問網絡
  需要修改 AndroidManifest.xml 文件,賦予相應權限
  簡單來說就是增加下面這行配置:<uses-permission android:name="android.permission.INTERNET"></uses-permission>

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved