Android开发--访问WebSerivice
来源:互联网 发布:mysql的日期和时间函数 编辑:程序博客网 时间:2024/06/05 15:12
今天我来谈谈自己在android开发中,从WebService中获取数据并且解析的经验,希望能帮助到一些刚刚入门学习android开发的朋友们。也希望大家能指正我的不足~~
一、准备阶段,我们需要使用到第三方提供的类库ksoap2,可以自行到百度上搜索下载,我使用的是ksoap2-android-assembly-2.5.7-jar-with-dependencies.jar。下载后,将jar包导入到工程的lib目录下,建议连同api帮助文档一同下载。
二、我们需要在AndroidManifest里添加相应的使用权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
三、建议将访问webservice的程序写在子线程中,线程之间的通信就是使用handler/message来传递。
四、我们需要先确定好四个非常重要的字符串内容:
String nameSpace = "http://tempuri.org/"; //webservice里的命名空间,此处用的.net默认命名空间
String methodName = "GetData"; //webservice里的要调用的方法名
String endPoint = "http://192.168.1.109/Service1.asmx"; //webservice的URL ,可以在游览器中直接打开
String soapAction = "http://tempuri.org/GetData"; //命名空间+“/”+方法名
五、准备好四个参数后我们就正式开始编写程序,来获取数据
// 新建HttpTransportSE对象
HttpTransportSE transport=new HttpTransportSE(endPoint);
try {
transport.debug=true;
//新建一个envelope(信封)对象,指定版本号VER11
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
//创建一个soapobject对象
SoapObject rpc = new SoapObject(nameSpace, methodName);
//添加输入的参数("参数名",参数值),要与方法的参数列表相同,顺序最好也一致
rpc.addProperty("name",name);
envelope.bodyOut = rpc;
envelope.dotNet = true; //是否涉及.net
transport.call(soapAction, envelope);//调用函数
if (envelope.getResponse() != null) { //判断是否有返回值
SoapObject result = (SoapObject) envelope.bodyIn; //获取返回内容
String detail = result.getProperty(0).toString(); //将返回的第一个变量取出
}
}
catch(Exception e){
//可自行编写异常处理程序
}
finally {
//可自行编写handler程序
}
六、解析数据,在开发工程中,我们获取的数据往往不是一个值,而是由多个值,也可能是多个对象组成的,这些对象以及他们的参数值都通过xml结构化存储,我们需要对xml的数据进行解析。这里就不贴出解析的具体代码。只说明原理:
要想解析数据,我们需要活用SoapObject对象,以及它所提供的getProperty()方法。xml是由许多标签层层嵌套而成,我们可以理解为每一个打标签就是SoapObject对象,获取它的子标签就需要用到getProperty()方法,然后getProperty()方法返回的是Object对象,此时我们只需要将Object对象强转成SoapObject对象即可。
望我的一点点小经验能帮助到看到这边博文的你们,如果有更好的方法希望大家与我分享分享~~
- Android开发--访问WebSerivice
- 调用WebSerivice WSDL
- WebSerivice添加进程
- webserivice 理解RESTful架构
- 开发Android硬件访问服务
- Android开发文件访问权限
- 开发Android硬件访问服务
- 快速访问Android开发文档
- Android 开发之访问网络
- 调用WebSerivice 添加web引用
- webserivice接口loadrunner性能测试
- 国内可以访问的Android开发网站
- Android访问WCF服务(上篇)-服务端开发
- Android访问WCF(下篇)-客户端开发
- android开发必须访问的网站
- Android开发之HTTP访问网络
- Android开发网站访问不了问题
- Android开发之使用URL访问网络资源
- win7安装theano
- Linux上的free命令详解
- web.xml中<security-constraint>和四种认证类型
- 链表栈的简单实现
- 网络挖掘技术——微博文本特征提取
- Android开发--访问WebSerivice
- SeaJS之use函数
- IDF实验室:牛刀小试--被改错的密码
- 博客被盗,盗号者无耻
- linux非常有用的指令
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- ios多点触摸范例
- 简单几步将word文档转换为pdf文件
- 利用HttpClient模拟登陆人人网、发送状态