您的位置:首页 > 移动开发 > Android开发

Android调用本地WebService

2015-06-12 15:29 369 查看
package com.example.testinvokewebservice;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;

public class AsyncHttpTask extends AsyncTask<Integer, Integer, String> {

private String strRes="";
TextView textView;
public Context context;
@Override
protected String doInBackground(Integer... params) {
// TODO Auto-generated method stub
try
{
// WS的命名空间
final String targetNameSpace = "http://tempuri.org/";
// WSDL文档中的URL
final String WSDL = "http://192.168.1.25/HH.asmx";
//要调用的方法名
final String methodName = "HelloWorld";
//查看WebService会得到此对应的SoapAction
String soapAction = "http://tempuri.org/HelloWorld";
SoapObject request = new SoapObject(targetNameSpace, methodName);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;
//            envelope.dotNet = true;
HttpTransportSE http = new HttpTransportSE(WSDL);
//            http.debug = true;
//网上好多扯蛋的,说第一个参数为NULL可以,实测不能为NULL
http.call(soapAction, envelope);
if(envelope.getResponse() != null)
{
//                SoapObject result = (SoapObject)envelope.getResponse();
strRes = envelope.getResponse().toString();
return strRes;
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
return strRes;
}

/* (non-Javadoc)
* @see android.os.AsyncTask#onPostExecute(java.lang.Object)
*/
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
Toast to = Toast.makeText(context, strRes, Toast.LENGTH_LONG);
to.show();
}

}

class Para{

}


package com.example.testinvokewebservice;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button btn= (Button)findViewById(R.id.btnLogin);
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AsyncHttpTask http = new AsyncHttpTask();
http.context = getApplicationContext();
http.execute();
}
});
}
}


AndroidManifest.xml增加权限方面的配置:

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: