


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用J2SE的ksoap2标准,我也来做一个山寨版本的android连接webservice。因为soap封装的关系,android application在接收到数据后不能够正确的按照J2SE的标准来获取。在运用之前,我们先要引导两个jar进入工程的buildpath这两个jar包都可以在网上查到下载,引导完后再做一项准备工作。弄清楚已发布的webservice的地址,以及封装的方式。比如:1. webservice接口::8080/axis2/services/Manager?wsdl(顺便说明一下,在android当中,不能写localhost,必须写清楚PC机当前的网络IP)2. webservice封装:/axis2都了解了过后,说明已经做好准备了。下面就介绍一下android如何获取webservice封装数据。引入ksoap2中以封装好的类import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.AndroidHttpTransport;在类中定义webservice的接口地址以及解析方式并且定义要调用的webservice中的函数private static final String URL = :8080/axis2/services/Manager?wsdl;private static final String NAMESPACE = /axis2;private static final String METHOD_NAME = GetMyFriends;这个信息我们可以在webservice中查到接下来开始做对webservice请求数据的工作,请求webservice函数以及封装要用的两个参数(userId和password)SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);request.addProperty(userId, 123456);request.addProperty(password, test);之后我们给定义发送数据的信封的封装格式SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 );发出请求envelope.setOutputSoapObject(request);AndroidHttpTransport aht = new AndroidHttpTransport(URL);aht.call(null, envelope);接着就可以定义一个SoapObject类型的实例去获取我们返回来的数据SoapObject so = (SoapObject) envelope.bodyIn;这里如果是返回来的数据只有一行并且只有一个值,比如验证函数,返回boolean类型的话,操作比较简单,String getReturn= so.getProperty(return);这个getReturn就是你要获取的值。但是如果返回来是多行的值的话,这个方法就不行了,我们必须对返回来的信息做一些解析。我曾试过用J2SE的标准方式来获取,但是会报错,最主要的可能是他的方式在android当中不能使用。所以在这里我用了正则表达式这种方式来进行数据的解析,我们先来看一下他返回的数据的结构是什么情况。GetMyFriendsResponsereturn=FriendsMessagepermitList=anyTypenickName=我爱罗; singnature=null; userId=2; ; permitList=anyTypenickName=jack; singnature=null; userId=1004; ; permitList=anyTypenickName=admin; singnature=leo_admin; userId=1001; ;简单看他很想Json结构,但是确不是。就目前的解决方式,我只是通过规律来进行了正则表达式的解析:如解析上面的内容。/首先取得permitList(好友)的个数String testPattern = permitList;int resultlength = result.length();cresult = cresult.replace(testPattern, );int lastlength = (resultlength - cresult.length() / testPattern.length();/取得每个permitList中的值。String LoginReturn=, pattern=nickName=.*?;s*singnature=.*?;s*userId=.*?;/动态生成String 数组,存储每个好友的信息String GetFinalReturn = new Stringlastlength;for (int i=0;ilastlength;i+)LoginReturn = result.replaceFirst(.*(+pattern+).*$, $1);GetFinalReturni = LoginReturn;result = result.replace(LoginReturn,);这个数组里面存储的格式就是nickName=admin; singnature=leo_admin; userId=1001;这样以来,我们可以根据=和;两个符号之间做split操作就可以得到数据。好了,到此连接webserv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源行业客户服务培训与提升方案报告
- 2025年低空经济产业创新报告:数字孪生技术引领无人机产业技术革命
- Unit2综合实践课说课稿- -2024-2025学年人教版英语七年级上册
- 第12课 制作艺术字说课稿-2025-2026学年初中信息技术人教版七年级下册-人教版
- 第14课 背影(说课稿)-2024-2025学年八年级语文上册同步原创说课稿
- Unit 1 单元说课稿-2024-2025学年冀教版英语七年级下册
- 2024-2025学年度九年级历史下册 第四单元 第8课 美国经济的发展说课稿 新人教版
- 二年级道德与法治上册 我自信我进步 第3课《各人有特点、能力各不同》说课稿 北师大版
- 2024年秋九年级化学上册 第五单元 化学方程式 课题2 如何正确书写化学方程式备课资料说课稿 (新版)新人教版
- 二年级思想品德上册 家乡面貌新说课稿3 山东人民版
- 手工飞机制作课件
- 国际道路应急预案
- 【初中语文】第9课《天上有颗南仁东星》课件-2025-2026学年统编版语文八年级上册
- 2025年贵州高考生物试卷真题及答案详解(精校打印版)
- 2025年保密观考试题库及答案
- 2025全国农业(水产)行业职业技能大赛(水生物病害防治员)选拔赛试题库(含答案)
- 与信仰对话 课件-2024年入团积极分子培训
- 高血压病人饮食护理重要性
- 典型示功图分析(全)
- 朗读技巧与朗读教学.ppt
- 人体膝跳反射演示器
评论
0/150
提交评论