`
xuyuanshuaaa
  • 浏览: 396466 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

android中调用webservice

 
阅读更多
上篇文章发布的webservice访问地址为http://localhost:8090/xfireDemo/services/hellowebservice?wsdl
这里我使用ksoap开源jar包去调用它,测试成功,主要代码为
			String namespace = "http://kevin.com";
			// 服务器发布的url
			String url = "http://10.0.2.2:8090/xfireDemo/services/hellowebservice";
			// 使用c#写的webservice
			// String endPoint =
			// "http://webservice.webxml.com.cn/WebService/MobileCodeWS.asmx";
			String methodName = "sayHello"; // 函数名
			String soupaction = namespace + "/" + methodName;
			// 指定WebService的命名空间和函数名
			SoapObject soapObject = new SoapObject(namespace, methodName);
			// 设置调用方法参数的值,经测试,此处还变量名好像没关系,貌似和顺序是相关的
			soapObject.addProperty("message", "testkevinqiang");
			HttpTransportSE transport = new HttpTransportSE(url);
			// 版本号向下兼容,SOAP协议版本号,与你要调用的webService中版本号一致
			SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
					SoapEnvelope.VER11);
			envelope.bodyOut = soapObject;

			// 经测试,即使访问的是我java发布的webservice,设置为true也可以
			envelope.dotNet = true;
			// 经测试,setoutputsoapobject作用和bodyout一样
			envelope.setOutputSoapObject(soapObject);
			// 使用call方法调用WebService方法

			try {
				transport.call(soupaction, envelope);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();

				SoapObject sb = (SoapObject) envelope.bodyIn;
				xmlMessage = sb.getProperty(0).toString(); // 获取从服务器端返回的XML字符串

				Message message = hd.obtainMessage();
				hd.sendMessage(message);
			}
		}

详解接附件。

其他的一些访问方式。1.使用HttpClient

用到的jar文件:commons-httpclient-3.1.jar

方法:
预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成。

String soapRequestData = "<?xml version=/"1.0/" encoding=/"utf-8/"?>" +

    "<soap12:Envelope xmlns:xsi=/"http://www.w3.org/2001/XMLSchema-instance/" xmlns:xsd=/"http://www.w3.org/2001/XMLSchema/" xmlns:soap12=/"http://www.w3.org/2003/05/soap-envelope/">" +

      "<soap12:Body>" +

       " <getCountryCityByIp xmlns=/"http://WebXml.com.cn//">" +

      "    <theIpAddress>219.137.167.157</theIpAddress>" +

     "   </getCountryCityByIp>" +

    "  </soap12:Body>" +

    "</soap12:Envelope>";

然后定义一个PostMethod,这时需要指定web服务的Url;

PostMethod postMethod = new PostMethod(“http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx”);

然后把Soap请求数据添加到PostMethod中

byte[] b = soapRequestData.getBytes("utf-8");

InputStream is = new ByteArrayInputStream(b,0,b.length);

RequestEntity re = new InputStreamRequestEntity(is,b.length,"application/soap+xml; charset=utf-8");

postMethod.setRequestEntity(re);

最后生成一个HttpClient对象,并发出postMethod请求

HttpClient httpClient = new HttpClient();

statusCode = httpClient.executeMethod(postMethod);

String soapRequestData =  postMethod.getResponseBodyAsString();

soapRequestData就是调用web服务的Soap响应数据,是xml格式的,可以通过解析soapRequestData来获得调用web服务的返回值。

这种方式最好在java程序中使用,android中还是推荐ksoap2方式。
下班的xfire客户端更是仅在java project中使用。

2.使用Xfire

用到的jar文件xfire-all-1.2.4.jar, jdom-1.0.jar

方法:

定义一个Client对象,指定web服务的wsdl的地址

Client c = new Client(new URL(“http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl”));

调用Client对象的invoke方法,指定web服务的方法名,和参数,返回值是一个Object型的数组。

下面代码调用getVersionTime方法,这个方法没有参数用所以后一个参数使用new Object[0]。

Object[] results = c.invoke(“getVersionTime”, new Object[0]);
分享到:
评论
10 楼 wxq5513866 2015-05-19  
有密码,大家不要下载了,下载也解压不了,别上当了
9 楼 wxq5513866 2015-05-19  
happyhan 写道
还要密码啊 能否告知密码

8 楼 happyhan 2014-10-29  
还要密码啊 能否告知密码
7 楼 onsinsin 2014-08-01  
rgypf1988 写道
为什么会有密码。这是什么情况!

6 楼 ddddd345 2014-05-23  
这个是个好东西,不错  !
5 楼 样儿吧 2013-08-04  
好资料   谢分享
4 楼 rgypf1988 2013-04-07  
为什么会有密码。这是什么情况!
3 楼 suxiaolincalendar 2012-12-21  
要密码,真复杂。
2 楼 jeaken 2012-12-06  
lz有密码啊  
1 楼 lintg 2012-06-13  
怎么要密码呀

相关推荐

    android中调用webservice总结

    ### Android中调用WebService总结 #### 一、WebService的基础概念 在正式开始之前,我们首先来了解一下WebService的基本概念。WebService是一种跨平台、跨语言的服务,它通过标准的XML格式来进行数据交换,支持...

    Android中调用Webservice实现号码归属地查询案例

    这个任务通常通过调用外部的Web服务接口来完成,本案例将详细讲解如何在Android应用中集成和调用Webservice来查询号码归属地。 首先,我们需要了解什么是Webservice。Webservice是一种基于网络的、分布式的模块化...

    android调用webservice jar包

    android中调用webservice:ksoap2.jar

    Android调用webservice进行实体对象的传递Json

    总结,Android调用WebService并使用JSON传递实体对象涉及到多个步骤,包括选择合适的库(如ksoap2和Newtonsoft.Json),理解数据序列化和反序列化的过程,以及正确设置HTTP通信。通过这种方式,你可以高效地在客户端...

    Android axis调用Webservice

    **二、Android调用Web Service的步骤** 1. **构建服务端:** - 使用Java(J2EE)编写Web Service接口和实现,比如使用Java的JAX-WS(Java API for XML Web Services)。 - 配置并部署服务到Web服务器,如Tomcat,...

    delphi XE5 ANDROID平台 调用 webservice并访问操作MSSQL数据库

    Delphi XE5 Android 平台调用 Webservice 并访问操作 MSSQL 数据库 Delphi XE5 是一款功能强大且灵活的开发环境,为开发者提供了跨平台的开发体验。在 Android 平台上,Delphi XE5 提供了强大的支持,允许开发者...

    android 调用webservice 有源码+jar

    本教程将详细介绍如何在Android环境中调用Webservice,并提供源码和jar包以供参考。主要涉及的技术点包括SOAP协议、HTTP通信以及接口调用。 1. **SOAP(Simple Object Access Protocol)协议** SOAP是一种轻量级的...

    Android调用WebService

    总结,Android调用WebService涉及了多种技术,包括选择合适的协议(如SOAP或RESTful),引入相应的库,构建和发送请求,以及处理返回的结果。理解这些知识点,并结合实际的AndroidWSDemo项目,将有助于你在实际开发...

    java android 调用webservice

    总结,Java Android调用Webservice涉及到网络请求、数据传输、解析和安全等多个环节,开发者需要了解HTTP协议,选择合适的Web服务类型,以及掌握相应的数据解析技术。通过合理利用第三方库和遵循最佳实践,可以提高...

    android平台调用webservice

    本主题将深入探讨如何在Android应用中调用Web服务,特别是基于SOAP协议的Web服务,即“Android与服务器端数据交互(基于SOAP协议整合android+webservice)”。 SOAP(Simple Object Access Protocol)是一种轻量级...

    android调用webservice接口实现登陆源码

    Android调用WebService的基本步骤: 1. 创建HTTP请求:使用HttpURLConnection或HttpClient库发起网络请求,向WebService服务器发送登录信息。 2. 构建请求体:如果是SOAP请求,需要构建符合SOAP规范的XML请求体;...

    android 调用 Webservice源码

    总之,Android调用Webservice源码的示例是一个很好的学习资源,它展示了Android客户端如何利用ksoap2库与C#编写的Web服务进行交互。通过理解这个示例,开发者可以更好地掌握Android与Web服务的集成技术,为自己的...

    在Android中调用WebService实例

    某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动...既然是调用WebService,我们首先的搭建WebService服务器。 下面演示的就是如何通过该网站提供的手机

    android 调用.net webservice

    ### Android调用.NET WebService详解 #### 一、概述 在Android开发中,与服务器进行交互是必不可少的一个环节。常见的交互方式包括HTTP请求、RESTful API等,而WebService作为一种传统但依然广泛使用的通信协议,...

    android调用webservice获取手机归属地

    本教程将详细介绍如何在Android应用中调用WebService来获取手机归属地。 1. **理解WebService** WebService是一种基于互联网的、平台无关的服务,它允许不同系统间的应用程序之间进行通信。常见的WebService技术有...

    ANDROID中使用WEBSERVICE验证用户登录的示例

    在Android开发中,为了实现应用程序与服务器之间的数据交互,经常使用WebService技术进行用户验证,例如登录功能。这里的示例将详细介绍如何在Android应用中通过WebService接口验证用户登录信息。主要涉及的技术点...

    Android客户端调用webService上传图片到服务器

    在Android客户端调用Web Service上传图片到服务器的过程中,主要涉及以下几个关键知识点: 1. **文件I/O操作**:客户端首先需要从SD卡或其他存储位置读取图片文件。这里使用`FileInputStream`读取图片文件,然后...

Global site tag (gtag.js) - Google Analytics