zoukankan      html  css  js  c++  java
  • Android调用webservice的例子

    1.需要一个ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar的架包。

    2.需要知道webservice的命名空间

    // WSDL文档中的命名空间  
    String targetNameSpace = "http://tempuri.org/";  

    3.需要WSDL文档中的URL

    // WSDL文档中的URL  
    String WSDL = "http://60.190.224.118:5031/XRHotel_ws?wsdl"; 

    4.完整代码

    new Thread(new Runnable() {  
              
            @Override  
            public void run() {                  
                // WSDL文档中的命名空间  
                String targetNameSpace = "http://tempuri.org/";  
                // WSDL文档中的URL  
                String WSDL = "http://60.190.224.110:5031/XRHotel_ws?wsdl";            
                // 需要调用的方法名
                String getSupportProvince = "GuestInfo"; 
                
                 // 根据命名空间和方法得到SoapObject对象  
                SoapObject soapObject = new SoapObject(targetNameSpace,  
                        getSupportProvince); 
                soapObject.addProperty("Name","张三");
                soapObject.addProperty("Pwd",null);
                soapObject.addProperty("Roomno","8930");
                // 通过SOAP1.1协议得到envelop对象  
                SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(  
                        SoapEnvelope.VER11);  
                // 将soapObject对象设置为envelop对象,传出消息  
                envelop.bodyOut = soapObject;
                // 设置是否调用的是dotNet开发的WebService  //指定webservice的类型的(java,PHP,dotNet)
                envelop.dotNet = true;  
                // 等价于envelop.bodyOut = soapObject;
                envelop.setOutputSoapObject(soapObject);              
                HttpTransportSE httpSE = new HttpTransportSE(WSDL);  
                // 开始调用远程方法  
                try {  
                    httpSE.call(targetNameSpace + getSupportProvince, envelop);  
                    // 得到远程方法返回的SOAP对象  
                    SoapObject resultObj = (SoapObject) envelop.bodyIn;  
                    // 得到服务器传回的数据  
                    int count = resultObj.getPropertyCount();  
                    Log.i("----------------TAG",  "count="+count+";"+resultObj.getProperty(0).toString());
                    for (int i = 0; i < count; i++) {  
                        Map<String,String> listItem = new HashMap<String, String>();  
                        listItem.put("province", resultObj.getProperty(i).toString()); 
                        Log.i("----------------TAG", resultObj.getProperty(i).toString());
                        listItems.add(listItem);  
                    }  
                } catch (IOException e) {  
                    e.printStackTrace();  
                } catch (XmlPullParserException e) {  
                    e.printStackTrace();  
                }  
            }  
        }).start();  
    }  
    Soap 产生的连接没必要自己去关闭, httpSE.call方法内,在通过流获取数据之后,已经把流关闭了。
  • 相关阅读:
    Django系列:TemplateView,ListView,DetailView
    Django系列:开发自己的RestAPI
    Django系列:Restful CBV
    Django系列:RestFul
    Django系列12:Django模型关系
    B
    All about that base
    Safe Passage
    A
    Isomorphic Inversion
  • 原文地址:https://www.cnblogs.com/lipeineng/p/5842251.html
Copyright © 2011-2022 走看看