import java.io.IOException;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;

public class CallWs extends Activity {
  final static String SERVICE_NS = "http://lee/";
  final static String SERVICE_URL = "http://172.18.5.198/crazyit";
  private EditText text1;
  private EditText text2;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_call_ws);
    text1 = (EditText) findViewById(R.id.text1);
    text2 = (EditText) findViewById(R.id.text2);
    //调用的方法
    String methodName = "getUserList";
    //创建HttpTransportSE传输对象
    HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);
    ht.debug = true;
    //使用SOAP1.1协议创建Envelop对象
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    //实例化SoapObject对象
    SoapObject soapObject = new SoapObject(SERVICE_NS, methodName);
    soapObject.addProperty("arg0","客户端参数:");
    //将SoapObject对象设置为SoapSerializationEnvelope对象的传出SOAP消息
    envelope.bodyOut = soapObject;
    try {
      //调用Web Service
      ht.call(null, envelope);
      if(envelope.getResponse() != null){
        //获取服务器响应返回的SOAP消息
        SoapObject result = (SoapObject) envelope.bodyIn;
        //接下来是从SoapObject对象中解析响应数据的过程
        SoapObject detail1 = (SoapObject) result.getProperty(0);
        SoapObject detail2 = (SoapObject) result.getProperty(1);
        StringBuilder person1 = new StringBuilder();
        person1.append("用户名:");
        person1.append(detail1.getProperty(3));
        person1.append("\n密码");
        person1.append(detail1.getProperty(0));
        person1.append("\n身高");
        person1.append(detail1.getProperty(1));
        text1.setText(person1.toString());
        StringBuilder person2 = new StringBuilder();
        person2.append("用户名:");
        person2.append(detail2.getProperty(3));
        person2.append("\n密码");
        person2.append(detail2.getProperty(0));
        person2.append("\n身高");
        person2.append(detail2.getProperty(1));
        text2.setText(person2.toString());
      }
    } catch (IOException e) {
      e.printStackTrace();
    } catch (XmlPullParserException e) {
      e.printStackTrace();
    }
  }

}

上面程序中的粗体字代码就代表了使用ksoap2-android来调用Web  Service操作的关键的7个步骤。

不管远程Web  Service提供的服务功能多么强大、业务实现多么复杂,对于Android客户端是完全透明的,Android只要送出相应的请求参数,服务器就会返回包含结果的SOAP消息。借助于Web  Service这个桥梁,在Android应用中实现功能非常强大的应用-----反正具体的业务逻辑由Web Service服务器实现,Android客户端只要调用Web  Service服务即可。

通过ksoap2-android来调用Web Service操作的实例的更多相关文章

  1. 使用Android应用调用Web Service

    Java本身提供了丰富的Web  Service支持,比如Sun公司指定的JAX-WS  2规范,还有Apache开源组织所提供的Axis1.Axis2.CXF等,这些技术不仅可以用于非常方便地对外提 ...

  2. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  3. C#开发和调用Web Service

    http://blog.csdn.net/h0322/article/details/4776819 1.1.Web Service基本概念 Web Service也叫XML Web Service ...

  4. ASP.NET调用Web Service

    1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...

  5. C# 调用 Web Service

    Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是:通过SOAP ...

  6. 使用wsimport和JAX-WS调用Web Service接口

    本文简单举例说明如何使用wsimport工具和JAX-WS API调用Web Service接口.此方法的优点:使用JDK自带的工具和API接口,无需依赖第三方库. JDK版本:1.8.0_141开发 ...

  7. VB.NET,C#.NET调用Web Service,利用visual studio 的实现方法

    下面是一篇文章比较详细,其实具体操作很简单,把Web Service服务地址,利用工具(VS2010),通过添加引用的形式,添加到项目中来就可以应用了. 大家如果这个地方不会操场的话,可以问问我QQ: ...

  8. php5调用web service

    工作中需要用php调用web service接口,对php不熟,上网搜搜,发现关于用php调用web service的文章也不多,不少还是php4里用nusoap这个模块调用的方法,其实php5里已经 ...

  9. Dynamic CRM 2013学习笔记(二十五)JS调用web service 实现多条记录复制(克隆)功能

    前面介绍过如何克隆一条当前的记录: Dynamic CRM 2013学习笔记(十四)复制/克隆记录 , 主要是通过界面上加一个字段,单击form上的clone 按钮时,改变这个字段的值以触发插件来实现 ...

随机推荐

  1. Case1:WorkFlow不能运行的解决办法

    原因为CRMAppPool选择了一个域用户,然后异步服务的用户执行会有问题 at CrmException..ctor(Int32 errorCode, Object[] arguments) ilO ...

  2. 导出db2数据库的表结构和数据(转载)

      对于db2数据库,导入和导出表结构和数据其实很简单,只需要用到db2look和db2move两个命令即可.这两个命令都需要在客户端的命令行处理器 中执行,但对于数据库服务器和客户端不在同一机器上的 ...

  3. zigbee学习之路(三):按键的控制

    一.前言 通过前一次的实验,相信大家都已经对cc2530程序的编写有了一定的认识,这次我们来操作和实验的是cc2530上的按键模块. 二.原理分析 我们先来看一下按键的原理图: 根据原理图我们可以得出 ...

  4. 关于file的上传文件

    http://blog.csdn.net/wclxyn/article/details/7090575/

  5. 弹窗的封装(css,js) 和弹窗的例子

    //每个弹窗的标识 var x =0; var idzt = new Array(); var Window = function(config){ //ID不重复 idzt[x] = "z ...

  6. WP8没有开发者账号升级GDR3预览版的方法

    很多希望尝鲜WP8 GDR3的朋友一样希望提前体验GDR3的效果,但苦于没有开发者账号而不得其门!今天为大家带来普通账号升级GDR3的方法! 工具/原料 WP8智能手机 可用wifi热点 方法/步骤 ...

  7. linux python pip包安装

    python  -m  pip   install    --trusted-host pypi.python.org

  8. ruby 资源收集

    http://huacnlee.com/blog/archives/ 一个牛人李华顺的个人网站 http://api.rubyonrails.org/ 不错的ruby on rails学习网站 htt ...

  9. sqlite与android交互 (封装)

    学android已经有大概一周时间了吧 ,总感觉自己基础不怎么好,只能通过一点一点积累着敲来巩固平常的知识,有的时候就先不封装的敲一遍,再封装上,有些语句真的记不住,虽然知道他是什么意思,于是乎就反复 ...

  10. 【CSU1808】地铁

    ICPCCamp 有 n 个地铁站,用 1,2,-,n 编号. m 段双向的地铁线路连接 n 个地铁站,其中第 i 段地铁属于 ci 号线,位于站 ai,bi 之间,往返均需要花费 ti 分钟(即从 ...