Android开发之访问WebService的工具类
2018-03-31 21:08
176 查看
Android中使用WebService通讯,下面对访问WebService的工具类进行记录
在Activity类中使用WebService对服务器进行访问
package com.wjy.project.railway.tools; import android.os.Handler; import android.os.Message; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * Created by WangJinyong on 2018/3/28. * 访问WebService的工具类 */ public class WebServiceUtils { //服务器地址 public static final String WEB_SERVER_URL = "http://114.115.205.183:9004/Compaction/"; // public static final String WEB_SERVER_URL = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx"; // 命名空间 private static final String NAMESPACE = "http://WebXml.com.cn/"; // 含有3个线程的线程池 private static final ExecutorService executorService = Executors.newFixedThreadPool(3); /** * @param url WebService服务器地址 * @param methodName WebService的调用方法名 * @param properties WebService的参数 * @param webServiceCallBack 回调接口 */ public static void callWebService(String url, final String methodName, HashMap<String, String> properties, final WebServiceCallBack webServiceCallBack) { // 创建HttpTransportSE对象,传递WebService服务器地址 final HttpTransportSE httpTransportSE = new HttpTransportSE(url); // 创建SoapObject对象 SoapObject soapObject = new SoapObject(NAMESPACE, methodName); // SoapObject添加参数 if (properties != null) { for (Iterator<Map.Entry<String, String>> it = properties.entrySet() .iterator(); it.hasNext(); ) { Map.Entry<String, String> entry = it.next(); soapObject.addProperty(entry.getKey(), entry.getValue()); } } // 实例化SoapSerializationEnvelope,传入WebService的SOAP协议的版本号 final SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); // 设置是否调用的是.Net开发的WebService soapEnvelope.setOutputSoapObject(soapObject); soapEnvelope.dotNet = true; httpTransportSE.debug = true; // 用于子线程与主线程通信的Handler final Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); // 将返回值回调到callBack的参数中 webServiceCallBack.callBack((SoapObject) msg.obj); } }; // 开启线程去访问WebService executorService.submit(new Runnable() { @Override public void run() { SoapObject resultSoapObject = null; try { httpTransportSE.call(NAMESPACE + methodName, soapEnvelope); if (soapEnvelope.getResponse() != null) { // 获取服务器响应返回的SoapObject resultSoapObject = (SoapObject) soapEnvelope.bodyIn; } } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } finally { // 将获取的消息利用Handler发送到主线程 mHandler.sendMessage(mHandler.obtainMessage(0, resultSoapObject)); } } }); } /** * @author WangJinyong */ public interface WebServiceCallBack { public void callBack(SoapObject result); } }
在Activity类中使用WebService对服务器进行访问
private void requestZT_G_user() { //添加参数 HashMap<String, String> properties = new HashMap<String, String>(); properties.put("sjh", "13801234567"); properties.put("mac", hostmac); WebServiceUtils.callWebService("服务器地址", "接口的方法名", properties, new WebServiceUtils.WebServiceCallBack() { @Override public void callBack(SoapObject result) { Log.e("tag","result="+result);//返回的数据 } }); }
相关文章推荐
- android访问Axis2开发的WebService并保持会话
- Android客户端访问使用Jersey开发RESTful的webservice服务器
- 在asp.net2.0中提供了新一代的数据访问工具--DataSource。它为简单的数据库开发提供了便捷的方式
- OpenSocial--使用OpenSocial开发iGoogle小工具:访问用户和个人资料
- Android开发入门(三)之调试工具adb,ddms
- android开发环境建立以及开发工具的使用--怎样使用eclipse来开发android源码
- Asp数据库访问代码自动产生工具-ASPRunner(适用初学者和为了提高开发效率的Developer)
- Android开发工具--adb的使用
- 国内可以访问的Android开发网站
- Android开发指南-工具-画九宫格
- Comparison--开发WebService两种开源工具CXF和Axis2的比较
- android 开发时的SD卡的文件访问
- android 开发时的SD卡的文件访问
- android开发环境建立以及开发工具的使用--怎样使用eclipse来开发android源码
- Android开发中的logcat工具使用
- WebService开发笔记 2 -- VS 2005 访问WebServcie更简单
- Spring Framework 开发参考手册 之十一 使用ORM工具进行数据访问
- 位于上海的微软服务器与开发工具事业部的Blog已经开张,欢迎大家访问
- Android开发工具之DDMS
- 发现一个很好的Android开发工具网站