zoukankan      html  css  js  c++  java
  • 通过ksoap2-android来调用Web Service操作的实例

    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(" 密码");
            person1.append(detail1.getProperty(0));
            person1.append(" 身高");
            person1.append(detail1.getProperty(1));
            text1.setText(person1.toString());
            StringBuilder person2 = new StringBuilder();
            person2.append("用户名:");
            person2.append(detail2.getProperty(3));
            person2.append(" 密码");
            person2.append(detail2.getProperty(0));
            person2.append(" 身高");
            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服务即可。

  • 相关阅读:
    进程和线程
    jQuery闭包理解
    数据库设计
    DevOps概念
    DevOps实践指南-何处开始(5-8)
    DevOps实践指南-DevOps介绍(1-4)
    iNeuOS工业互联平台,设备容器(物联网)改版,并且实现设备数据点的实时计算和预警。发布3.2版本
    iNeuOS工业互联平台,在“智慧”楼宇、园区等领域的应用
    iNeuOS工业互联平台,机床&PLC硬件网关与平台无缝对接,进行数据交互
    参观2020年上海工业博览会几点感受及判断
  • 原文地址:https://www.cnblogs.com/jiww/p/5645743.html
Copyright © 2011-2022 走看看