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 [] ={""}; soapObject.addProperty("procName", "AFI02_HOME_GET_WAITING");
soapObject.addProperty("ret", ); // 设置返回参数
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().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", ); // 设置返回参数
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().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
Android 调用webservice并解析的更多相关文章
- Android调用WebService(转)
Android调用WebService WebService是一种基于SOAP协议的远程调用标准,通过 webservice可以将不同操作系统平台.不同语言.不同技术整合到一块.在Android SD ...
- 纠正网上乱传的android调用Webservice方法。
1.写作背景: 笔者想实现android调用webservice,可是网上全是不管对与错乱转载的文章,结果不但不能解决问题,只会让人心烦,所以笔者决定将自己整理好的能用的android调用webser ...
- 网摘Android调用WebService
这边特别注意调用的.net WCF 接口的绑定方式.以前一直用的wxHttpbinding,一直连不上.改成BasicHTTPbinding就能连上了 上篇文章已经对Web Service及其相关知识 ...
- Android 调用 WebService
1.WebService简介 PS:如果看完上面简介还不是很清楚的话,那么就算了,之前公司就用C#搭的一个WebService! 本节我们并不讨论如何去搭建一个WebService,我们仅仅知道如何去 ...
- ksoap2 android 调用WebService
webService,soap,wsdl的基本概念? 详情请看维基百科 基于soap 1.1, soap 1.2 的请求和响应数据源 查找了很久都是基于json格式传输数据,但是最终还是找到了基于xm ...
- Android调用WebService
这两天给老师做地铁app的demo,与后台的交互要用WebService,还挺麻烦的.所以想写点,希望有用. Web Services(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一 ...
- 第十五章:Android 调用WebService(.net平台)
什么是webservice? Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和 ...
- Android 调用webService(.net平台)
什么是webservice? Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和 ...
- 【Android进阶】Android调用WebService的实现
最近想自己搞搞服务器,就从最简单的webservice开始吧 先上效果图 项目结构 开始贴代码,注释都有,有问题的请留言 MainActivity.java package com.example.w ...
随机推荐
- 【Devops】【docker】【CI/CD】jenkins 清除工作空间报错Error: Wipe Out Workspace blocked by SCM
jenkins 清除工作空间报错 错误如下: Error: Wipe Out Workspace blocked by SCM 解决方法: 进入jenkins服务器,进入workspace,手动rm ...
- linux syslog详解 转
分三部分 一.syslog协议介绍 二.syslog函数 三.linux syslog配置 一.syslog协议介绍 1.介绍 在Unix类操作系统上,syslog广泛应用于系统日志.syslog ...
- mongodb centos7上的安装
1,下载安装包 下载mongoDB的安装文件地址:https://www.mongodb.org/downloads#production 选择Linux 64-bit legacy 版本,下载到目标 ...
- 关于MySQL的行转列的简单应用
sql 脚本 -- 创建表 学生表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHA ...
- Eclipse国内镜像源配置方法
Table of Contents 我们在国内从官网下载Eclipse以及插件非常慢,那么,有没有方法变快呢? 有,那就是使用国内的公开镜像源替换官方源. 1 下载Eclipse 首先,我们看一个链接 ...
- asp.net 判断用户是否使用微信浏览器
平时我们看一些网页的时候会发现这样的功能:有的页面只能在微信里访问,如果在电脑上访问就提示用户请到微信上访问该网页.这个用C#怎么实现呢?我们结合代码来看看. 首先,我们需要先判断用户使用的是什么浏览 ...
- J2ee高并发情况下监听器
引言:在高并发下限制最大并发次数,在web.xml中用过滤器设置參数(最大并发数),并设置其它相关參数.具体见代码. 第一步:配置web.xml配置,不懂的地方解释一下:參数50通过參数名maxCon ...
- Tomcat访问(access)日志配置
在tomcat的access中打印出请求的情况可以帮助我们分析问题,通常比较关注的有访问IP.线程号.访问url.返回状态码.访问时间.持续时间. 最近在跟一个图片请求超时的问题,需要在项目的acce ...
- api重复引用导致的诡异问题排查
api重复引用导致的诡异问题排查 最近一个项目上线前开发环境.测试环境都能正常打包并运行.然而到了准生产环境和生产环境则报一些诡异的错误信息: [INFO] --------------------- ...
- 使用jQuery获取radio/checkbox组的值的代码收集
<!-- $("document").ready(function(){ $("#btn1").click(function(){ $("[na ...