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. iOS-打开word、ppt、pdf、execl文档方式

    这里面包括下载和打开文档的操作:需要先导入<AFNetworking>的框架 第一步:创建一个显示文档的view:ReadViewController (1).h的代码如下: @inter ...

  2. Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead

    Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead 在解决问题Underscores can only ...

  3. C# 数字带逗号(千分位符、金钱千分位字符)

    首先要明确带了逗号之后  数字就变成字符串了 ,不再是数字了. 昨天做项目的时候需要格式化数字变成带逗号的,本来打算自己写个方法的,后来时间太紧了,就打算从网上查个,查来查去都是要对字符串的位进行操作 ...

  4. C++中explicit关键字的作用

    转载自:http://www.cnblogs.com/winnersun/archive/2011/07/16/2108440.html explicit用来防止由构造函数定义的隐式转换. 要明白它的 ...

  5. Java并发编程初探

    package test; import java.io.File; import java.io.FileReader; import java.io.IOException; import jav ...

  6. C#知识点有必要知会

    如果说你父类里面有一个成员比如int a;那么你子类里面也可以再定义一个int a,这个时候base.a和this.a表示的就不是一个变量了,如果说子类里面没有,那么base.a和this.a表示的都 ...

  7. [Machine-Learning] 熟悉 Numpy

    Numpy 是 Python 中的一个模块,主要用于处理数学和计算相关的问题,这里是一个入门的介绍. 导入 习惯上可以这样导入: import numpy as np 在 machine learni ...

  8. [poj2828] Buy Tickets (线段树)

    线段树 Description Railway tickets were difficult to buy around the Lunar New Year in China, so we must ...

  9. Creating Custom Login Screen In Oracle Forms 10g

    Below is the example plsql unit to validate login credentials and after successful validation open a ...

  10. iOS-浅谈runtime运行时机制-runtime简单使用(转)

    转自http://www.cnblogs.com/guoxiao/p/3583432.html 由于OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtim ...