WebService一、数据交互
调用webservice总结:
1.加入第三方的jar包 Ksoap2-android-XXX
2.访问响应的webservice的网站,查看响应的信息,得到nameSpace,methodName,url,soapAction
3.如果request信息还有带有SoapHander的。那么就要封装:依据参数封装:
Element[] header = new Element[1];
header[0] = new Element().createElement(nameSpace, "SoapHeader"); Element userName = new Element().createElement(nameSpace, "UserID");
userName.addChild(Node.TEXT, UserID);
header[0].addChild(Node.ELEMENT, userName); Element pass = new Element().createElement(nameSpace, "PassWord");
pass.addChild(Node.TEXT, PassWord);
header[0].addChild(Node.ELEMENT, pass);
4.封装request信息的SoapBody
// 指定WebService的命名空间和调用的方法名
SoapObject soapObject=new SoapObject(nameSpace, methodName);
//处理soap12:Body数据部分,也就是请求数据的参数
soapObject.addProperty("loginName",username);
soapObject.addProperty("password",password);
5.指定SoapSerializationEnvelope信息
//SoapEnvelope.VER11 表示使用的soap协议的版本号 1.1 或者是1.2
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.headerOut=header;
envelope.bodyOut=soapObject;
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);
6.指定HttpTransportSE
HttpTransportSE ht = new HttpTransportSE(url);
7.访问webservice服务器
ht.call(soapAction, envelope);
8.两种方式获取服务器返回的信息:
try{
result =(SoapObject) soapEnvelope.getResponse();}
catch(ClassCastException e){
result =(SoapObject)soapEnvelope.bodyIn;}
9.解析字符串str获取客户端想要的信息
注意:1.在做android Webservice开发的时候一般情况下大家接受webservice服务器返回值的时候都是使用SoapObject soapObject = (SoapObject) envelope.getResponse();这个来接受返回来的值,但这种方法往往会产生java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive这样的错误。在服务器端返回值是String类型的数值的时候使用SoapObject soapObject = (SoapObject) envelope.getResponse();和 SoapObject result = (SoapObject)envelope.bodyIn;这两种方法来接受值都会报出 java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive这样的错误。 我们可以使用 Object object = (Object)envelope.getResponse();就可以解决这种错误。
2.如果在导入ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar后虽然没有报错,但是运行时还是提示某个class找不到,必须:
项目的Properties-->Java Build Path-->Order and Export 对相应的jar包打上勾,然后将工程clean,然后编译运行。
WebService一、数据交互的更多相关文章
- Flex数据交互之WebService
In this article you will learn how to call webservices hosted on asp.net applications from flex. Fir ...
- 使用webservice实现App与服务器端数据交互
What? webservice曾经认为是解决异构系统间整合的最佳解决方案,不依赖于第三方任何系统的支持(不需要部署RDBMS服务器),大家只需要按照官方的规范,即可完成相互之间的数据交互. Why? ...
- Flex数据交互之Remoting
一 前言 Flex数据交互常用的有三种方式:WebService.HttpService以及Remoting. WebService方式已在这篇文章中给出,这篇文章主要讲解以Remoting方式进行数 ...
- Flex数据交互之Remoting[转]
Flex数据交互之Remoting 一 前言 Flex数据交互常用的有三种方式:WebService.HttpService以及Remoting. WebService方式已在这篇文章中给出,这篇文章 ...
- js前台与后台数据交互-前台调后台
转自:http://blog.csdn.net/wang379275614/article/details/17033981 网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数 ...
- json数据交互
springmvc 的json数据交互 - 哎幽的成长 - CSDN博客--和老师讲课相同http://blog.csdn.net/u012373815/article/details/4720818 ...
- android json解析及简单例子+Android与服务器端数据交互+Android精彩案例【申明:来源于网络】
android json解析及简单例子+Android与服务器端数据交互+Android精彩案例[申明:来源于网络] android json解析及简单例子:http://www.open-open. ...
- SpringMVC由浅入深day02_8json数据交互
8 json数据交互 8.1 为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据 ...
- springMVC学习(11)-json数据交互和RESTful支持
一.json数据交互: json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. springMVC进行json交 ...
- SpringMVC学习记录七——sjon数据交互和拦截器
21 json数据交互 21.1 为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservi ...
随机推荐
- 清掉kugo 7 和千千静听的广告
as below,we know Ad is bothering Way to solve it! Original URL :http://tieba.baidu.com/p/1240429497? ...
- sql 将datetime类型转化为指定格式的字符串
), ) -- 输出: 05 16 2006 10:57AM ), ) -- 输出: 05/16/06 ), ) -- 输出: 06.05.16 ), ) -- 输出: 16/05/06 ), ) - ...
- WebIM(4)----Comet的特殊之处
WebIM系列文章 在一步一步打造WebIM(1)一文中已经使用Comet实现了一个简单的WebIM,那么,Comet究竟和一般的打开网页有何区别,本文将通过编写一个简单的HTTP服务器来说明两者的区 ...
- 2014由于在myeclipse5.5.1许可证
点击假设Myeclipse负载项目server该图标不响应.这是MyEclipse过期,这也是一年许可: subscriber: axin Serial:nLR8ZC-855575-69517252 ...
- php表单(2)
学习php表单 主要是想知道 前端通过submit之后 后端是如何进行操作的.现在实现一个效果:点击submit,输入框的信息不会被刷掉:刷新页面,输入框的信息被刷掉(index.php). < ...
- javascript Function.prototype.bind
语法: fn.bind(obj,arg1,arg2,arg3...) bind是es5新增的方法,顾名思义,它的作用是将函数绑定到某个对象上,就像是某个对象调用方法一样.其本质还是改变了该函数的上下文 ...
- wcf并发处理模型(随记)
---------------------------------------------------------------------------------------并发性课程:1.多个线程同 ...
- python线程Example
# -*- coding:utf-8 -*- import time import pymongo from threading import Thread from Queue import Que ...
- 不是技术牛人,如何拿到国内IT巨头的Offer【转】
转:http://blog.csdn.net/lsldd/article/details/13506263 不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰.看看这些牛人 ...
- [转]编译 JavaScriptCore For iOS
from: http://phoboslab.org/log/2011/06/javascriptcore-project-files-for-ios github: https://github.c ...