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>
相关文章推荐
- [Android算法] Android蓝牙开发浅谈
- Android: 屏幕截图
- Android的进程回收机制
- 基于 vlc android截图录制视频等功能
- android获取手机Imei码
- 海思android4.4 SDK编译Latin输入法
- Android Studio新手完全指引
- adb 命令 直接把日志存到text文件中
- Android取得超级管理员权限
- Android实战简易教程-第十五枪(实现ListView中Button点击事件监听)
- android代码混淆之不同ADT版本和不同IDE之间混淆配置文件的区别
- 创建安卓模拟器的两种方式及常用Android命令介绍
- Android和Java的关系和区别
- Android 底部TabActivity——FragmentActivity
- Android中使用jdbc连接Sqllite
- Android之异步线程原理
- Android---Activity 生命周期(四)Recreating Activity
- iOS、Android、java服务端 DES+RSA安全传输统一实现
- android studio :ADB not responding.
- Android将项目中的数据库复制到SD