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 ...
随机推荐
- android的logcat详细用法!
from://http://www.miui.com/article-272-1.html [技术交流]android的logcat详细用法! logcat是Android中一个命令行工具,可以用于得 ...
- MEF在运行时替换插件
利用AppDomain的ShadowCopy特性. var setup = new AppDomainSetup { CachePath = cachePath, ShadowCopyFiles = ...
- Mysql 根据id查所有父级或子级
mysql递归查询,mysql中从子类ID查询所有父类(做无限分类经常用到) 由于mysql 不支持类似 oracle with ...connect的 递归查询语法 之前一直以为类似的查询要么用存储 ...
- 利用WebSocket传输数组或者Blob的方案
最近在利用Html5的WebSocket进行即时通讯,一点小心得,大家一起讨论吧 首先把WebSocket的协议网址和WebSocket API网址给大家: 协议:http://tools.ietf. ...
- 通过layer-list自定义EditText背景
假设activity的背景是白色,第一层也(就是最底层)是绿色:第二次是白色,但是距离底部有一段小偏移,目的是为了做出文本框两边的小勾:第三层也是白色,但是它距离底部和左右两边都有一定距离.通过三层配 ...
- Java(C#)基础差异-语法
1.long类型 Java long类型,若赋值大于int型的最大值,或小于int型的最小值,则需要在数字后加L或者l,表示该数值为长整数,如long num=2147483650L. 举例如下: p ...
- SQLServer中merge函数用法详解
http://www.jb51.net/article/75302.htm Merge关键字是一个神奇的DML关键字.它在SQL Server 2008被引入,它能将Insert,Update,Del ...
- ASP.NET MVC:无法向会话状态服务器发出会话状态请求
ylbtech-Error-ASP.NET MVC: 无法向会话状态服务器发出会话状态请求 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Service (ASP.NET ...
- dbcp、c3p0、jdbc常用连接配置
dbcp连接数据库配置 比较常见 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSo ...
- Html.AntiForgeryToken() 防止CSRF攻击 的AJaX应用
有关Html.AntiForgeryToken()的使用其实网上的说明很多了,比如http://blog.csdn.net/cpytiger/article/details/8781457 那么我们写 ...