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服务即可。

最新文章

  1. 树莓派3B初始化后一些必须的设置
  2. Theano入门神经网络(二) 实现一个XOR门
  3. 微软自带的Serialization和Newtonsoft简单测试
  4. world machine, 输出lightmap
  5. Kinect For Windows V2开发日志一:开发环境的配置
  6. Eval与Bind的区别
  7. C#解析XML详解(XPath以及带命名空间NameSpace)
  8. HDU 1754 I Hate It(线段树之单点更新,区间最值)
  9. 在java程序中实现发送邮件的功能
  10. CSS伪类的理解
  11. 痞子衡嵌入式:恩智浦LPC系列MCU开发那些事 - 索引
  12. flask-security(一)快速入门
  13. Salesforce中如何删除调试日志
  14. 用kubeadm 搭建 高可用集群问题记录和复盘整个过程 - 通过journalctl -u kubelet.service命令来查看kubelet服务的日志
  15. numpy技巧
  16. SPOJ7586 NUMOFPAL manacher算法
  17. python学习笔记011——函数式编程
  18. HDU3306—Another kind of Fibonacci
  19. select sum也会返回null值
  20. Unity中利用委托与监听解耦合的思路

热门文章

  1. Preconditions优雅的检验参数
  2. bzoj1741 [Usaco2005 nov]Asteroids 穿越小行星群
  3. Docker 在6.4上安装
  4. jQuery对select操作小结
  5. ESB 中的流量控制
  6. Python正则处理多行日志一例
  7. Mac下面的SecureCRT(附破解方案) 更新到最新的8.0.2
  8. ASP。net treeview xml
  9. ReactJs入门教程
  10. latex 异或