Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 連接webservice(利用谷歌提供的jar包),androidwebservice

Android 連接webservice(利用谷歌提供的jar包),androidwebservice

編輯:關於android開發

Android 連接webservice(利用谷歌提供的jar包),androidwebservice


Android開發,需要連接webservice,之前就想用谷歌提供的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;
    }
}

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

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