博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 调用webservice并解析
阅读量:5796 次
发布时间:2019-06-18

本文共 4864 字,大约阅读时间需要 16 分钟。

hot3.png

这是调用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
 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
 paraNames,Vector
 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
 waitModels=new ArrayList
();        //实例化一个文档构建器工厂        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

转载于:https://my.oschina.net/u/1036767/blog/267384

你可能感兴趣的文章
【windows开发实现记事本程序——逻辑篇1】
查看>>
(4)主成分分析Principal Component Analysis——PCA
查看>>
同步和异步的区别
查看>>
POJ 2891 Strange Way to Express Integers 中国剩余定理 模板 数论
查看>>
纯JavaScript实现HTML5 Canvas六种特效滤镜
查看>>
BZOJ3143:[HNOI2013]游走(高斯消元)
查看>>
婺源石城、长溪与理坑秋行散记
查看>>
HTML中JavaScript调用方法
查看>>
【1864】最大报销额 (HDU)
查看>>
前端黑客攻击与防御 [收录: 长期更新]
查看>>
JAVA DATE解析(时间戳解析为固定格式)
查看>>
Python-Day8
查看>>
每天一道算法题目(18)——取等长有序数组的上中位数和不等长有序数组的第k小的数...
查看>>
1018. Binary Prefix Divisible By 5可被 5 整除的二进制前缀
查看>>
ORACLE---Unit05: 视图、序列、索引 、 约束
查看>>
Vue
查看>>
Python——eventlet.backdoor
查看>>
项目管理考试中的几个等级以及常考知识点
查看>>
day1 笔记
查看>>
cocos2d-x 多分辨率适配详解(转载),以前北京团队设计的游戏,也是用这套方案...
查看>>