Android 串連webservice(利用Google提供的jar包),androidwebservice

來源:互聯網
上載者:User

Android 串連webservice(利用Google提供的jar包),androidwebservice

Android開發,需要串連webservice,之前就想用Google提供的jar包,:http://pan.baidu.com/s/1hqMTUHe

把它下載下來粘貼到libs檔案夾下即可:

網上有很多類似的方法,我嘗試了很多都沒有成功,最後發現是我下載的jar包有問題導致我一直卡在哪兒。

首先添加網路許可權:

<uses-permission android:name="android.permission.INTERNET"/>

這是全部代碼,包括擷取遠程webservice當中資料並用ListView顯示:

package com.example.webservice;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.ksoap2.SoapEnvelope;import org.ksoap2.SoapFault;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import org.xmlpull.v1.XmlPullParserException;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends Activity {    //命名空間    String nameSpace="http://tempuri.org/";    //調用方法    String methodName="selectStuAll";//webservice存在的方法名稱    String endPoint="http://10.0.2.2:8011/WebService.asmx?wsdl";//本地測試完整的連結    String soapAction="http://tempuri.org/selectStuAll";//命名空間和調用方法名    private ListView listview;    private ListAdapter adapter;    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listview=(ListView) findViewById(R.id.listView1);                adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,getsource());        listview.setAdapter(adapter);        listview.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,                    long arg3) {                // TODO 自動產生的方法存根                Toast.makeText(MainActivity.this, ">>"+adapter.getItem(arg2),1).show();            }        });    }public List<String> getsource()    {        List<String> list=new ArrayList<String>();              //執行個體化SoapObject對象        SoapObject request=new SoapObject(nameSpace, methodName);        //第二步:假設方法有參數的話,設定調用方法參數       /* request.addProperty("username","1");        request.addProperty("password","2");        request.addProperty("tel","3");*/      //獲得序列化的Envelope        SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER12);        envelope.bodyOut=request;        envelope.dotNet=true;        HttpTransportSE transport=new HttpTransportSE(endPoint);        try {            transport.call(soapAction, envelope);        } catch (IOException e) {            // TODO 自動產生的 catch 塊            e.printStackTrace();        } catch (XmlPullParserException e) {            // TODO 自動產生的 catch 塊            e.printStackTrace();        }        SoapObject result = null;        try {            result = (SoapObject)envelope.getResponse();        } catch (SoapFault e) {            // TODO 自動產生的 catch 塊            e.printStackTrace();        }                int count=result.getPropertyCount();        for(int index=1;index<count;index=index+3){            list.add(result.getProperty(index).toString());        }        return list;    }}

這樣就大功告成了,如果用到這個方法有問題,在下面評論,我會幫你解決。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.