為什么80%的碼農都做不了架構師?>>> ??
1.創建Activity。
package com.web;import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.StrictMode;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;public class WebServiceTestActivity extends Activity implements OnClickListener {private EditText et_param01;private EditText et_param02;private EditText et_param03;private Button btn_submit;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);et_param01 = (EditText) findViewById(R.id.et_param01);et_param02 = (EditText) findViewById(R.id.et_param02);et_param03 = (EditText) findViewById(R.id.et_param03);btn_submit = (Button) findViewById(R.id.btn_submit);btn_submit.setOnClickListener(this);/*** 防止android.os.NetworkOnMainThreadException異常 * 參考http://dev.wo.com.cn/docportal/doc_queryMdocDetail.action?mdoc.docindex=6695*/StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());}public String callService(String param1, String param2) {try {// 命名空間String nameSpace = "http://10.8.60.63:8088/webservice/services/webCallService/";// 調用的方法名稱String methodName = "callService";// SOAP ActionString soapAction = nameSpace + methodName;SoapObject request = new SoapObject(nameSpace, methodName);request.addProperty("param1", param1);request.addProperty("param2", param2);SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.dotNet = true;envelope.bodyOut = request;envelope.setOutputSoapObject(request);envelope.encodingStyle="UTF-8";HttpTransportSE transport = new HttpTransportSE("http://10.8.60.63:8088/webservice/services/webCallService");// wsdl文檔try {// 調用WebService
transport.call(soapAction, envelope);// transport.call(null, envelope);} catch (Exception e) {e.printStackTrace();}Object obj = envelope.getResponse();return obj.toString();} catch (Exception e) {// TODO Auto-generated catch block
e.printStackTrace();return null;}}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_submit:new Thread() {@Overridepublic void run() {// 你要執行的方法// 執行完畢后給handler發送一個空消息handler.sendEmptyMessage(0);}}.start();break;}}// 定義Handler對象private Handler handler = new Handler() {@Override// 當有消息發送出來的時候就執行Handler的這個方法public void handleMessage(Message msg) {// 處理UIString str = (String) callService(et_param01.getText().toString(), et_param02.getText().toString());if (str == null || "".equals(str)) {str = "返回值為空";}et_param03.setText(str);}};}
2.配置清單文件。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.web"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="9"android:targetSdkVersion="15" /><!-- 訪問網絡的權限 --><uses-permission android:name="android.permission.INTERNET" /> <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name" ><activityandroid:name=".WebServiceTestActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>
3.測試效果。
js調用webservice。