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

  • 相关阅读:
    jmeter循环控制器
    SQL语句
    Linux防火墙常用命令
    利用cookie,实现刷新页面跳转,左侧菜单点击后状态保持不变。
    JQUERY动态生成当前年份的前5年以及后 2年
    (个人累积,分享)制作iconfont并转化图标代码使用
    如果一张要显示的图片穿插着两个路径该怎么解决?
    上传图片后台写法
    分析器错误消息:未能加载类型“XXXXXXX”
    尝试加载应用时出现了以下错误
  • 原文地址:https://www.cnblogs.com/jiww/p/5645743.html
Copyright © 2011-2022 走看看