没有合适的资源?快使用搜索试试~ 我知道了~
Android与服务器端数据交互(基于SOAP协议整合android+webservice)_.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 190 浏览量
2021-12-20
02:32:32
上传
评论
收藏 419KB DOCX 举报
温馨提示
试读
15页
Android与服务器端数据交互(基于SOAP协议整合android+webservice)_.docx
资源详情
资源评论
资源推荐
Android 与服务器端数据交互(基于 SOAP 协议整合 android+webservice)
上一节中我们通过 协议,采用 Client 向服务器端 action 请求数据。当然调用服务器端方法获
取数据并不止这一种。WebService 也可以为我们提供所需数据,
那么什么是 webService 呢?,它是一种基于 SAOP 协议的远程调用标准,通过 webservice 可以
将不同操作系统平台,不同语言,不同技术整合到一起。
我们在 PC 机器 java 客户端中,需要一些库,比如 XFire,Axis2,CXF 等等来支持访问
WebService,但是这些库并不适合我们资源有限的 android 客户端,做过 JAVA ME 的人都知道
有 KSOAP 这个第三方的类库,可以帮助我们获取服务器端 webService 调用,当然 KSOAP 已经提
供了基于 android 版本的 jar 包了,那么我们就开始吧:
首先下载 KSOAP 包:包
然后新建 android 项目:并把下载的 KSOAP 包放在 android 项目的 lib 目录下:右键->build
path->con'gure build path--选择 Libraries,如图:
以下分为七个步骤来调用 WebService 方法:
第一:实例化 SoapObject 对象,指定 webService 的命名空间(从相关 WSDL 文档中可以查看
命名空间),以及调用方法名称。如:
View Code
//命名空间
private static final String serviceNameSpace=" ://WebXml /";
//调用方法(获得支持的城市)
private static final String getSupportCity="getSupportCity";
//实例化 SoapObject 对象
SoapObject request=new SoapObject(serviceNameSpace, getSupportCity);
第二步:假设方法有参数的话,设置调用方法参数
request.addProperty("参数名称","参数值");
第三步:设置 SOAP 请求信息(参数部分为 SOAP 协议版本号,与你要调用的 webService 中版本
号一致):
View Code
//获得序列化的 Envelope
SoapSerializationEnvelope envelope=new
SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut=request;
第四步:注册 Envelope,
(new MarshalBase64()).register(envelope);
第五步:构建传输对象,并指明 WSDL 文档 URL:
View Code
//请求 URL
private static final String serviceURL=" :// webxml
/webservices/weatherwebservice.asmx";
//Android 传输对象
Android Transport transport=new Android Transport(serviceURL);
transport.debug=true;
第六步:调用 WebService(其中参数为 1:命名空间+方法名称,2:Envelope 对象):
View Code
transport.call(serviceNameSpace+getWeatherbyCityName, envelope);
第七步:解析返回数据:
View Code
if(envelope.getResponse()!=null){
return parse(envelope.bodyIn.toString());
}
/**************
* 解析 XML
* @param str
* @return
*/
private static List<String> parse(String str){
String temp;
List<String> list=new ArrayList<String>();
if(str!=null && str.length()>0){
int start=str.indexOf("string");
int end=str.lastIndexOf(";");
temp=str.substring(start, end-3);
String []test=temp.split(";");
for(int i=0;i<test.length;i++){
if(i==0){
temp=test[i].substring(7);
}else{
temp=test[i].substring(8);
}
int index=temp.indexOf(",");
list.add(temp.substring(0, index));
}
}
return list;
}
这样就成功啦。那么现在我们就来测试下吧,这里有个地址提供 webService 天气预报的服务的,
我这里只提供获取城市列表:
View Code
//命名空间
private static final String serviceNameSpace=" ://WebXml /";
//请求 URL
private static final String serviceURL=" :// webxml
/webservices/weatherwebservice.asmx";
//调用方法(获得支持的城市)
private static final String getSupportCity="getSupportCity";
//调用城市的方法(需要带参数)
private static final String getWeatherbyCityName="getWeatherbyCityName";
//调用省或者直辖市的方法(获得支持的省份或直辖市)
private static final String getSupportProvince="getSupportProvince";
然后你可以在浏览器中输入地址(WSDL):serviceURL,你会看到一些可供调用的方法:
剩余14页未读,继续阅读
Mylover612
- 粉丝: 1
- 资源: 7万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- keil2 + proteus + 8051.exe
- 1961ee27df03bd4595d28e24b00dde4e_744c805f7e4fb4d40fa3f695bfbab035_8(1).c
- mediapipe-0.9.0.1-cp37-cp37m-win-amd64.whl.zip
- windows注册表编辑工具
- mediapipe-0.9.0.1-cp37-cp37m-win-amd64.whl.zip
- 校园通行码预约管理系统20240522075502
- 车类型数据集6250张VOC+YOLO格式.zip
- The PyTorch implementation of STGCN.STGCN-main.zip
- 092300108.cpp
- 车类型数据集6000张VOC+YOLO格式.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0