Android与服务器端数据交互(基于SOAP协议android+webservice)

转载 2016年05月30日 10:42:44

它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同的操作系统平台,不同语言,不同技术整合到一起。

我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问webservice,但是这些库并不适合我们资源有限的android手机客户端,做过java ME的人都知道KSOAP这个第三方的类库;可以帮助我们获取服务器端webservice调用,当然KSOAP已经提供了基于android版本的jar包了:ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar

调用webservice方法:

实例化SoapObject对象,指定webservice的命名空间(从相关WSDL文档中可以查看命名空间),以及调用方法名称

    //命名空间
    private static final String serviceNameSpace="http://WebXml.com.cn/";
    //调用方法(获得支持的城市)
    private static final String getSupportCity="getSupportCity";

    //实例化SoapObject对象
    SoapObject request=new SoapObject(serviceNameSpace, getSupportCity);


假设方法有参数的话,设置调用方法参数
    request.addProperty("参数名称","参数值");


设置SOAP请求信息(参数部分为SOAP协议版本号,与你要调用的webservice中版本号一致)

    //获得序列化的Envelope
    SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.bodyOut=request;


注册Envelope
   (new MarshalBase64()).register(envelope);


构建传输对象,并指明WSDL文档URL
    //请求URL
    private static final String serviceURL="http://www.webxml.com.cn/webservices/weatherwebservice.asmx";
    //Android传输对象
    AndroidHttpTransport transport=new AndroidHttpTransport(serviceURL);
    transport.debug=true;


调用webservice(其中参数为:命名空间+方法名称,Envelope对象)
    transport.call(serviceNameSpace+getWeatherbyCityName, envelope);

解析返回数据
   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;
    }






android 客户端与webservice之间的交互

  • 2016年02月24日 10:55
  • 2.1MB
  • 下载

WebService学习记录----客户端数据发送

引言: 近期由于公司需要,开始接触WebService Java端的接口制作。在服务端的创建与客户端的连接方面出现了很多问题,本文先就客户端出现的问题进行一些说明。 刚开始做客户端...
  • yueshendefeidao
  • yueshendefeidao
  • 2016年10月28日 17:26
  • 336

客户端通过WebService实现和服务端书交互

在C/S结构中,我们经常用到.NET框架提供asmx封装的接口调用,通过WebService实现服务端数据的交互。先通过.NET框架提供的asmx实现WebService调用。 服务端通过return...
  • zhangchenghaopeng
  • zhangchenghaopeng
  • 2017年07月11日 09:22
  • 584

在Android里使用SOAP和WebService通信

stackoverflow: How to call SOAP web service in Android How to Call Web Service in Android ...
  • Dev_Hanyu
  • Dev_Hanyu
  • 2015年04月14日 15:39
  • 639

android中简单搞定webservice接口访问,以及webservice简析

最近总结的一些经验,对于android或java中使用webservice接口的一些心得。不过需要注意的是,在android中,以下代码需要在子线程中使用。好了,废话不多说了,直接上代码,只是一个代码...
  • csdn_0012306
  • csdn_0012306
  • 2017年01月18日 16:03
  • 5545

Android WebService(基于SOAP协议)

package com.nenglong.wsclient; import java.io.IOException; import org.ksoap2.SoapEnvelope; import ...
  • long704480904
  • long704480904
  • 2013年03月05日 14:41
  • 29361

Android程序使用SOAP调用远程WebService服务

在如今的应用程序中,不可能不使用到网络,并且后台一定是有服务器作为支撑的。如今最常见的调用方式有HTTP的GET ,POST方式,返回JSON或者XML数据。但是也有一种常见的形式就是调用WebSer...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2015年08月06日 16:50
  • 3175

第一个android访问java编写的webservice程序

首先看下Java编写的webservice: 工具:MyEclipse 步骤:1. 菜单栏 –> File –> New –> Web Service Project             2.在这...
  • jcy472578
  • jcy472578
  • 2013年11月13日 15:53
  • 1218

[019] Android平台调用WebService详解

上篇文章已经对Web Service及其相关知识进行了介绍(Android开发之WebService介绍 ),相信有的朋友已经忍耐不住想试试在Android应用中调用Web Service。本文将通过...
  • lyq8479
  • lyq8479
  • 2011年05月18日 00:06
  • 195124

android通过webservice连接SQL数据库(一)服务器端

作为一个学生党,参加了一个比赛,需要开发一个安卓app,需要用到数据库存储。SQLite数据库虽然是安卓常用的数据库,但只能在手机本地上进行存储,实现不了像QQ等其他软件一样实现用户登录功能。而且对于...
  • superSmart_Dong
  • superSmart_Dong
  • 2017年05月09日 21:59
  • 1004
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android与服务器端数据交互(基于SOAP协议android+webservice)
举报原因:
原因补充:

(最多只允许输入30个字)