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 ...
随机推荐
- python测试开发django-17.admin后台管理
前言 通常一个网站开发,需要有个后台管理功能,比如用后台管理发布文章,添加用户之类的操作.django的admin后台管理主要可以实现以下功能 基于admin模块,可以实现类似数据库客户端的功能,对数 ...
- Swift - 添加纯净的Alamofire
Swift - 添加纯净的Alamofire 如果你有代码洁癖,不能容忍任何多余的东西,请继续往下看. . 下载Alamofire (https://github.com/Alamofire/Ala ...
- 内存数据库-H2简介与实践
一.H2数据库介绍 H2数据库地址:http://www.h2database.com/html/main.html H2是一个开源的嵌入式(非嵌入式设备)数据库引擎,它是一个用Java开发的类库,可 ...
- Windows10更新后,远程桌面无法登录服务器 提示远程桌面协议 CredSSP 出现漏洞
Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法 打开注册表,手动建立 这个路径 HKEY_LOCAL_MACHINE\SOFTWA ...
- Android studio 编译失败Error:Could not read entry ':app:processDebugManifest' from cache taskArtifacts.b
Android studio 编译失败 Error:Could not read entry ':app:processDebugManifest' from cache taskArtifacts. ...
- vim粘贴代码的时候,恶心的缩进.
vim粘贴代码 如果有注释,那么粘贴后就惨不忍睹,类似于: 我粘贴代码到a.cpp,内容为: //打印函数 ) { ;i<length;i++){ ){ printf("0x &quo ...
- MySQL集群的几种方案
组建MySQL集群的几种方案LVS+Keepalived+MySQL(有脑裂问题?但似乎很多人推荐这个)DRBD+Heartbeat+MySQL(有一台机器空余?Heartbeat切换时间较长?有脑裂 ...
- jquery 控制css样式
一.CSS 1.css(name) 访问第一个匹配元素的样式属性. 返回值 String 参数 name (String) : 要访问的属性名称 示例: $("p").css(&q ...
- xshell5不能用
转载:xshell 5 不能用 https://51.ruyo.net/10002.html
- 运行代码时报linker command failed with exit code 1 错误
一个c语言项目,在.h文件中原来只有一些方法的声明,后来我加入了一些变量声明后,编译的时候报错: 运行代码时报linker command failed with exit code 1 错误 怎么回 ...