最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android調(diào)用WebService實例分析

 更新時間:2015年10月12日 14:22:33   作者:天高空  
這篇文章主要介紹了android調(diào)用WebService的方法,以實例形式較為詳細的分析了WebService的調(diào)用原理與具體使用方法,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了android調(diào)用WebService的方法。分享給大家供大家參考。具體如下:

WebService是一種基于SOAP協(xié)議的遠程調(diào)用標準,通過webservice可以將不同操作系統(tǒng)平臺、不同語言、不同技術整合到一塊。在Android SDK中并沒有提供調(diào)用WebService的庫,因此,需要使用第三方的SDK來調(diào)用WebService。PC版本的WEbservice客戶端庫非常豐富,例如Axis2,CXF等,但這些開發(fā)包對于Android系統(tǒng)過于龐大,也未必很容易移植到Android系統(tǒng)中。因此,這些開發(fā)包并不是在我們的考慮范圍內(nèi)。適合手機的WebService客戶端的SDK有一些,比較常用的有Ksoap2,可以從http://code.google.com/p/ksoap2-android/downloads/list進行下載;將下載的ksoap2-android-assembly-2.4-jar-with-dependencies.jar包復制到Eclipse工程的lib目錄中,當然也可以放在其他的目錄里。同時在Eclipse工程中引用這個jar包。

java代碼如下:

package com.arg;
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.List; 
import java.util.Map; 
import java.util.Map.Entry; 
import android.app.Activity; 
import android.app.ProgressDialog; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
public class CallWebServiceActivity extends Activity {
  //顯示結果的listview 
  ListView listView=null; 
  //輸入文本框 
  EditText provinceEdit=null; 
  //用于存放數(shù)據(jù)的集合list 
  List<Map<String, Object>> data=null; 
  //提示對話框 
  ProgressDialog myDialog=null; 
  //搜索按鈕 
  Button searchButton=null; 
 /** Called when the activity is first created. */ 
 @Override 
 public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
  //獲得文本輸入框 
  provinceEdit=(EditText) this.findViewById(R.id.provinceEdit); 
  //獲得搜索按鈕
  searchButton=(Button) this.findViewById(R.id.searchButton);
  //為搜索按鈕添加單擊監(jiān)聽事件 
  searchButton.setOnClickListener(new OnClickListener(){
    public void onClick(View v) { 
     //響應按鈕單擊事件的函數(shù) 
     ResponseOnClick(); 
    }
  });
 }
 //響應按鈕單擊事件的函數(shù) 
 public void ResponseOnClick(){ 
  //創(chuàng)建一個線程 
  HttpThread thread=new HttpThread(handler); 
  //構造請求參數(shù) 
  HashMap <String ,Object> params=new HashMap<String ,Object>(); 
  try{ 
   CharSequence etValue=provinceEdit.getText(); 
   String name=""; 
   if(etValue!=null){ 
    //字符轉(zhuǎn)碼 
    name=new String(etValue.toString().getBytes(),"UTF-8");
   } 
   params.put("byProvinceName", name); 
  }catch(Exception ex){ 
   ex.printStackTrace(); 
  } 
  // 
  String url="http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx"; 
  // String url = "http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx"; 
  String nameSpace = "http://WebXml.com.cn/"; 
  String methodName = "getSupportCity"; 
  // 開始新線程進行WebService請求 
  thread.doStart(url, nameSpace, methodName, params); 
 } 
 /** 
 * 捕獲消息隊列 
 * 
 */ 
 Handler handler=new Handler(){ 
  public void handleMessage(Message m){ 
   ArrayList <String> myList=(ArrayList<String>)m.getData().getStringArrayList("data"); 
   if(myList !=null){ 
    if(data !=null){ 
     data.clear(); 
    }else{ 
     data=new ArrayList<Map <String, Object>>(); 
    } 
    for(int i=0;i<myList.size();i++){ 
     Map<String, Object> item=new HashMap<String, Object>(); 
     item.put("text", myList.get(i)); 
     data.add(item); 
    } 
    /** 
    * 列表顯示 
    * 
    */ 
    SimpleAdapter simpleAdapter=new SimpleAdapter(CallWebServiceActivity.this 
    ,data,R.layout.listlayout,new String[] {"text"},new int []{R.id.showData}); 
    listView=(ListView) findViewById(R.id.showListView); 
    listView.setAdapter(simpleAdapter); 
   } 
  } 
 }; 
 /** 
 * 線程類 
 * @author Administrator 
 * 
 */ 
 public class HttpThread extends Thread{ 
  private Handler handle=null; 
  String url=null; 
  String nameSpace=null; 
  String methodName=null; 
  HashMap <String ,Object> params=null; 
  ProgressDialog progressDialog=null; 
  //構造函數(shù) 
  public HttpThread(Handler hander){ 
   handle=hander; 
  } 
  /** 
  * 啟動線程 
  */ 
  public void doStart(String url, String nameSpace, String methodName, 
     HashMap<String, Object> params) {
    // TODO Auto-generated method stub 
   this.url=url; 
   this.nameSpace=nameSpace; 
   this.methodName=methodName; 
   this.params=params; 
   progressDialog=ProgressDialog.show(CallWebServiceActivity.this, "提示","正在請求請稍等……", true); 
   this.start(); 
   } 
  /** 
  * 線程運行 
  */ 
  @Override 
  public void run() { 
   // TODO Auto-generated method stub 
   System.out.println("jack"); 
   super.run(); 
   try{ 
    //web service請求 
    SoapObject result=(SoapObject) CallWebService(); 
    //構造數(shù)據(jù) 
    ArrayList<String> list=null; 
    if(result !=null && result.getPropertyCount() > 0){ 
     list=new ArrayList<String>(); 
     for(int i=0;i<result.getPropertyCount();i++){ 
      SoapPrimitive value=(SoapPrimitive) result.getProperty(i); 
      list.add(value.toString());
     } 
     //a取消進度對話框 
     progressDialog.dismiss(); 
     //構造消息 
     Message message=handle.obtainMessage(); 
     Bundle b=new Bundle(); 
     b.putStringArrayList("data", list);
     message.setData(b); 
     handle.sendMessage(message); 
    }
   }catch(Exception ex){
    ex.printStackTrace();
   }finally{
   }
  }
  /** 
  * 請求web service 
  */ 
  protected Object CallWebService(){ 
   String SOAP_ACTION = nameSpace + methodName; 
   //創(chuàng)建SoapObject實例 
   SoapObject request=new SoapObject(nameSpace,methodName); 
   //生成調(diào)用web service方法的soap請求消息 
   SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); 
   //設置.net web service 
   envelope.dotNet=true; 
   //發(fā)送請求 
   envelope.setOutputSoapObject(request); 
   //請求參數(shù) 
   if(params != null && !params.isEmpty() ){ 
    for(Iterator it=params.entrySet().iterator();it.hasNext();){ 
     Map.Entry e=(Entry) it.next(); 
     request.addProperty(e.getKey().toString(),e.getValue()); 
    } 
   }
   //
   AndroidHttpTransport androidHttpTrandsport=new AndroidHttpTransport(url);
   SoapObject result=null;
   try{
    //web service請求
    androidHttpTrandsport.call(SOAP_ACTION, envelope); 
    //得到返回結果
    result=(SoapObject) envelope.getResponse();
   }catch(Exception ex){
    ex.printStackTrace();
   } 
   return result; 
  } 
 } 
}

希望本文所述對大家的Android程序設計有所幫助。

相關文章

  • Android實現(xiàn)彩信附件的添加與刪除功能

    Android實現(xiàn)彩信附件的添加與刪除功能

    這篇文章主要介紹了Android實現(xiàn)彩信附件的添加與刪除功能,涉及Android針對常見多媒體文件的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Android中post和get的提交方式【三種】

    Android中post和get的提交方式【三種】

    本文主要對Android中三種POST和GET的提交方式進行詳細介紹。通過任何一種方式可以實現(xiàn)的功能是,從安卓手機端提交數(shù)據(jù)到服務器端,服務器端進行判斷,并返回相應的結果。三種方式各有利弊,實現(xiàn)效果相同,在實際的使用過程中可以根據(jù)本身的需要進行選擇。
    2016-12-12
  • Android 如何獲取設備唯一標識

    Android 如何獲取設備唯一標識

    這篇文章主要介紹了Android 如何獲取設備唯一標識,幫助大家更好的理解和學習使用Android,感興趣的朋友可以了解下
    2021-03-03
  • Android中Notification 提示對話框

    Android中Notification 提示對話框

    Notification,俗稱通知,是一種具有全局效果的通知,它展示在屏幕的頂端,首先會表現(xiàn)為一個圖標的形式,當用戶向下滑動的時候,展示出通知具體的內(nèi)容
    2016-01-01
  • Android自定義View實現(xiàn)仿網(wǎng)易音樂唱片播放效果

    Android自定義View實現(xiàn)仿網(wǎng)易音樂唱片播放效果

    這篇文章主要為大家詳細介紹了Android自定義View實現(xiàn)仿網(wǎng)易音樂唱片播放效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • a2sd+狀態(tài)下應用程序丟失的解決方法詳細解析

    a2sd+狀態(tài)下應用程序丟失的解決方法詳細解析

    用了a2sd+和SD分區(qū)方案的朋友可能會遇到突然某次開機之后,a2sd+失效,同時發(fā)生丟失若干應用程序的現(xiàn)象或者安裝軟件提示空間不足
    2013-09-09
  • Android?NDK開發(fā)之FFmpeg視頻添加水印

    Android?NDK開發(fā)之FFmpeg視頻添加水印

    這篇文章主要介紹了在Android?NDK開發(fā)中如何通過FFmpeg為視頻添加水印,文中的示例代碼講解詳細,對我們了解Android開發(fā)有一定的幫助,感興趣的可以學習一下
    2021-12-12
  • Android編程實現(xiàn)可滑動的開關效果(附demo源碼下載)

    Android編程實現(xiàn)可滑動的開關效果(附demo源碼下載)

    這篇文章主要介紹了Android編程實現(xiàn)可滑動的開關效果,涉及Android的布局與控件設置技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2016-04-04
  • Android中文件的壓縮和解壓縮實例代碼

    Android中文件的壓縮和解壓縮實例代碼

    這篇文章主要介紹了Android中文件的壓縮和解壓縮,需要的朋友可以參考下
    2017-03-03
  • Android進階CameraX與Camera2使用比對詳解

    Android進階CameraX與Camera2使用比對詳解

    這篇文章主要為大家介紹了Android進階CameraX與Camera2使用比示例對詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01

最新評論

翁牛特旗| 富川| 瑞金市| 辛集市| 鸡西市| 达州市| 林西县| 清水河县| 永清县| 汨罗市| 永善县| 吉木萨尔县| 章丘市| 金华市| 泉州市| 临江市| 阿巴嘎旗| 清新县| 资溪县| 通辽市| 鄄城县| 盘山县| 布尔津县| 靖西县| 崇明县| 平谷区| 珠海市| 浙江省| 米泉市| 绥芬河市| 苗栗县| 大田县| 上犹县| 平邑县| 隆德县| 石台县| 米林县| 扎兰屯市| 靖宇县| 朝阳区| 阳新县|