zoukankan      html  css  js  c++  java
  • Android 调用webservice并解析

    这是调用webService的具体方法

    private final static String nameSpace="http://tempuri.org/";
        private final static String url = "http://10.188.65.139/BizNavi_Link_Phone/Service.asmx?wsdl";
        
        public static List<WaitModel> CallWebService1() {
            // 调用webservice的具体方法        
            String nameSpace = "http://tempuri.org/";
            String methodName = "queryProcXml1";
            String soapAction = "http://tempuri.org/"+methodName;
            String url = "http://10.188.65.139/BizNavi_Link_Phone/Service.asmx?wsdl";// 后面加不加那个?wsdl参数影响都不大
    
            // 建立webservice连接对象
            HttpTransportSE transport = new HttpTransportSE(url);
    //        transport.debug = false;// 是否是调试模式
            transport.debug = true;// 是否是调试模式
    
            // 设置连接参数
            SoapObject soapObject = new SoapObject(nameSpace, methodName);
    
            String paraNames []={"@in_EMPLOYEE_ID1"};
            String paraValues []  ={"109"};
                    
            soapObject.addProperty("procName", "AFI02_HOME_GET_WAITING");        
            soapObject.addProperty("ret", 0);
            
            // 设置返回参数
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);// soap协议版本必须用SoapEnvelope.VER11(Soap V1.1)
            envelope.dotNet = true;// 注意:这个属性是对dotnetwebservice协议的支持,如果dotnet的webservice
                                    // 不指定rpc方式则用true否则要用false
            envelope.bodyOut = soapObject;//千万注意!!
            
            envelope.setOutputSoapObject(soapObject);// 设置请求参数        
            try {
                //ClientUtil.SetCertification();// 设置证书
                transport.call(soapAction, envelope);            
                SoapObject sb=(SoapObject)envelope.bodyIn;
                String ss= sb.getProperty(0).toString();
                InputStream inputStream=new ByteArrayInputStream(ss.getBytes());
                return DomWait.readXml(inputStream);            
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (XmlPullParserException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return null;
        }
        
        public static List<?> queryProcXml(String procName,Vector<String> paraNames,Vector<String> paraValues){
            String methodName = "queryProcXml1";
            String soapAction = "http://tempuri.org/"+methodName;
            
            // 建立webservice连接对象
            HttpTransportSE transport = new HttpTransportSE(url);
    //        transport.debug = false;// 是否是调试模式
            transport.debug = true;// 是否是调试模式
    
            // 设置连接参数
            SoapObject soapObject = new SoapObject(nameSpace, methodName);
    
                    
            soapObject.addProperty("procName", "AFI02_HOME_GET_WAITING");        
            soapObject.addProperty("ret", 0);
            
            // 设置返回参数
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);// soap协议版本必须用SoapEnvelope.VER11(Soap V1.1)
            envelope.dotNet = true;// 注意:这个属性是对dotnetwebservice协议的支持,如果dotnet的webservice
                                    // 不指定rpc方式则用true否则要用false
            envelope.bodyOut = soapObject;//千万注意!!
            
            envelope.setOutputSoapObject(soapObject);// 设置请求参数        
            try {
                //ClientUtil.SetCertification();// 设置证书
                transport.call(soapAction, envelope);            
                SoapObject sb=(SoapObject)envelope.bodyIn;
                String ss= sb.getProperty(0).toString();
                InputStream inputStream=new ByteArrayInputStream(ss.getBytes());
                return DomWait.readXml(inputStream);            
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (XmlPullParserException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return null;
        }

    很脑残的解析 

    public static List<WaitModel> readXml(InputStream inStream) throws Exception

        {
            List<WaitModel> waitModels=new ArrayList<WaitModel>();
            //实例化一个文档构建器工厂
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            //通过文档构建器工厂获取一个文档构建器
            DocumentBuilder builder = factory.newDocumentBuilder();
            //通过文档通过文档构建器构建一个文档实例
            Document document = builder.parse(inStream);
            Element root = document.getDocumentElement();
            NodeList nodes = root.getElementsByTagName("Table");
            for(int i = 0 ;i < nodes.getLength();i++)
            {
                Element personElement = (Element)nodes.item(i);
                WaitModel waitModel =new WaitModel();
    //            waitModel.setId(Integer.valueOf(personElement.getAttribute("id")));
                NodeList childNodes = personElement.getChildNodes();
                for(int j = 0;j<childNodes.getLength();j++)
                {
                    Node childNode = (Node)childNodes.item(j);
                    if (childNode.getNodeType()==Node.ELEMENT_NODE)
                    {
                        Element childElement = (Element)childNode;
                        if ("PLAN_DATE".equals(childElement.getNodeName()))
                        {
                            waitModel.setPLAN_DATE(childElement.getFirstChild().getNodeValue());
                        }
                        else if ("CORPORATION_NAME_ABB".equals(childElement.getNodeName())) {
                            waitModel.setCORPORATION_NAME_ABB(childElement.getFirstChild().getNodeValue());
                        }
                        else if ("ASSIGN_STATUS".equals(childElement.getNodeName())) {
                            waitModel.setASSIGN_STATUS(childElement.getFirstChild().getNodeValue());
                        }
                        else if ("WORK_ASSIGN_NO".equals(childElement.getNodeName())) {
                            waitModel.setWORK_ASSIGN_NO(childElement.getFirstChild().getNodeValue());
                        }                    
                    }
                }
                waitModels.add(waitModel);
            }
            return waitModels;
        }

    转:http://chen249045216.iteye.com/blog/1121586

  • 相关阅读:
    当Django模型迁移时,报No migrations to apply 问题时
    django--各个文件的含义
    django--创建项目
    1013. Battle Over Cities (25)
    1011. World Cup Betting (20)
    1009. Product of Polynomials (25)
    1007. Maximum Subsequence Sum (25)
    1006. Sign In and Sign Out (25)
    1008. Elevator (20)
    1004. Counting Leaves (30)
  • 原文地址:https://www.cnblogs.com/gzggyy/p/3142404.html
Copyright © 2011-2022 走看看