Android中调用webservice的工具类
最近学习WebService,感觉利用这个借口开发网站的Android客户端方便及了,用到一个工具类,这里铭记一下。
public static final String WebServiceNamespace =""//地址 public static final String WebAddress = ""//地址
调用Webservice
public static Object callWebservice(String WebServiceUrl,String method,String[] params,Object[] values){Object result = null;SoapObject rpc = new SoapObject(WebServiceTool.WebServiceNamespace,method);if(params!=null){for(int i=0;i<params.length;i++)rpc.addProperty(params[i], values[i]);}SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut = rpc; envelope.dotNet = true;envelope.setOutputSoapObject(rpc);HttpTransportSE ht = new HttpTransportSE(WebServiceUrl); ht.debug = true;String SOAP_ACTION = WebServiceTool.WebServiceNamespace + method;try{ht.call(SOAP_ACTION, envelope);result = envelope.getResponse();}catch (IOException e){e.printStackTrace();}catch (XmlPullParserException e){e.printStackTrace();} return result;}
将WebService调用获得的对象转换成对象
public static Object toObject(Object obj,Class<?> cls){if(obj==null)return null;if(obj instanceof String)return obj;Object result = null ;if(!(obj instanceof SoapObject)) return null;try{result = cls.newInstance() ;SoapObject so = (SoapObject)obj;System.out.println(so.getNamespace());for(int i=0;i<so.getPropertyCount();i++){PropertyInfo pinfo = new PropertyInfo();so.getPropertyInfo(i, pinfo);System.out.println(pinfo.name);Object value = so.getProperty(i);if(value==null)continue;Object returnValue = value;Field field = null;try{field = cls.getField(pinfo.name);}catch(NoSuchFieldException e){continue;}String name = field.getType().getName();System.out.println(name);if(name.equals("int"))returnValue = Integer.valueOf(returnValue.toString());else if(name.equals("short"))returnValue = Short.valueOf(value.toString());else if(name.equals("long"))returnValue = Long.valueOf(value.toString());else if(name.equals("byte"))returnValue = Byte.valueOf(value.toString());else if(name.equals("float"))returnValue = Float.valueOf(value.toString());else if(name.equals("double"))returnValue = Double.valueOf(value.toString());else if(name.equals("BigInteger"))returnValue = new BigInteger(value.toString());else if(name.equals("boolean"))returnValue = Boolean.valueOf(value.toString());else if(name.equals("char"))returnValue = value.toString().charAt(0);else if(name.equals("java.util.Date"))returnValue = Date.parse(value.toString());else if(name.equals("java.lang.String"))returnValue = value.toString();cls.getField(pinfo.name).set(result,returnValue);}}catch (Exception e){e.printStackTrace();}return result;}
将WebService调用获得的对象转换成对象数组
public static Object[] toObjects(Object obj,Class<?> cls){if(obj==null)return null;if(!(obj instanceof SoapObject))return null;SoapObject so = (SoapObject)obj;int count = so.getPropertyCount(); Object[] objs = new Object[count];for(int i=0;i<count;i++){objs[i] = toObject(so.getProperty(i),cls);}return objs; }
public static ArrayList<Object> toObjectList(Object obj,Class<?> cls){if(obj==null)return null;if(!(obj instanceof SoapObject))return null;SoapObject so = (SoapObject)obj;int count = so.getPropertyCount(); ArrayList<Object> objs = new ArrayList<Object>();for(int i=0;i<count;i++){objs.add(toObject(so.getProperty(i),cls));}return objs; }
转载于:https://www.cnblogs.com/LIANQQ/archive/2013/01/04/2836855.html
Android中调用webservice的工具类相关推荐
- android wsdl封装,在Android中调用C#写的WebService(附源代码)
由于项目中要使用Android调用C#写的WebService,于是便有了这篇文章.在学习的过程中,发现在C#中直接调用WebService方便得多,直接添加一个引用,便可以直接使用将WebServi ...
- Android开发之访问WebService的工具类
Android中使用WebService通讯,下面对访问WebService的工具类进行记录 package com.wjy.project.railway.tools;import android. ...
- 在Android中使用Android Ksoap2调用WebService
一.WebService介绍 WebService是基于SOAP协议可实现web服务器与web服务器之间的通信,因采用SOAP协议传送XML数据具有平台无关性,也是成为解决异构平台之间通信的重要解决方 ...
- 在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决
在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决 参考文章: (1)在Android中调用KSOAP2库访问webservice服务出现的服务端 ...
- Android获取通讯录中的所有联系人工具类
一个获取通讯录中所有联系人的工具类,存储在Map中,Map中key为手机号,value为联系人的姓名.还提供了一个根据手机号查询该手机号的联系人姓名的功能. 注:同一联系人可以存储多个手机号,但是同一 ...
- android demo 调用,Android中调用C++函数的一个简单Demo
这里我不想多解释什么,对于什么JNI和NDK的相关内容大家自己去百度或谷歌.我对Android的学习也只是个新手 .废话少说直接进入正题. 一.在Eclipse中创建一个Android Applica ...
- Android开发 几个常用工具类
本文出自[张鸿洋的博客]并 做了部分修改. 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311 打开大家手上的项目,基 ...
- 在 Android 中调用二进制可执行程序(native executable )
在 Android 中调用二进制可执行程序(native executable ) 前几天有需要在java代码中调用二进制程序,就在网上找了些资料,写点东西记录下. Android 也是基于linux ...
- Android开发 无线Wifi+WifiUtil工具类,android开发网格布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
最新文章
- 虚幻引擎5–环境设计学习教程
- CentOS中vsftp安装与配置
- 小程序统一服务消息_[miniblog]小程序订阅消息踩坑记
- LeetCode: 929. Unique Email Addresses
- C# delegate event
- 超级玛丽地图java_我的世界超级玛丽地图包
- JVM面试问题系列:JVM 配置常用参数和常用 GC 调优策略
- boost::logic::tribool相关用法的测试程序
- linux php 守护进程,PHP程序员玩转Linux系列 使用supervisor实现守护进程
- 文本留言 php,一个php作的文本留言本的例子(一)
- dubbo原理_Dubbo原理浅析
- Android 查看內存使用
- MYSQL 中varchar类型转text格式
- android欢迎界面的功能,Android 启动 ( 欢迎 ) 页面实现
- 微信卡券---第一步:上传卡券图片素材
- MapReduce实现kmeans算法
- 时间一天天过去,好像什么都没变。
- office2007无法卸载 无法安装
- 基于python的音乐数据分析_基于Python的亚马逊音乐产品评论分析
- conda安装环境报错:Solving environment: failed with initial frozen solve.
热门文章
- torchvision中Transform的normalize
- 开普勒行星运动第二定律在电子与原子核运动中的应用
- hexo右下角弄一个live2d的卡通动画小人
- 大话数据结构13:二叉树 数组存储
- 牛客网 在线编程 局部最小值位置
- 机器学习,计算机视觉相关资料
- oracle动态采样超时,解决 ORACLE 11.2 动态采样导致的性能问题
- 螺丝上的十字磨没了_十字起子和无限下拉菜单
- java并发核心知识体系精讲_JVM核心知识体系
- Git ----fatal: unable to access ‘https://gitee.com/***.git/‘: SSL certificate problem: unable