- 浏览: 387724 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
surpassno:
南冠楚囚 写道如果是复制一个一位数组,那么改变复制后的数组并不 ...
java的system.arraycopy()方法 -
南冠楚囚:
如果是复制一个一位数组,那么改变复制后的数组并不影响原数组。你 ...
java的system.arraycopy()方法 -
wxq5513866:
有密码,大家不要下载了,下载也解压不了,别上当了
android中调用webservice -
wxq5513866:
happyhan 写道还要密码啊 能否告知密码
android中调用webservice -
happyhan:
还要密码啊 能否告知密码
android中调用webservice
android中调用webservice
- 博客分类:
- android
上篇文章发布的webservice访问地址为http://localhost:8090/xfireDemo/services/hellowebservice?wsdl
这里我使用ksoap开源jar包去调用它,测试成功,主要代码为
详解接附件。
其他的一些访问方式。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]);
这里我使用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]);
- testWebservice.rar (184.1 KB)
- 下载次数: 272
评论
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 wifi开发
2011-11-29 09:52 2232最近做了个小项目,用到了wifi连接,通过wifi去控制一个w ... -
android读写文件
2011-11-22 09:24 1365android中读写文件分两部分。 1.手机flash读写 ... -
android adt myeclipse8.5离线安装
2011-11-14 15:51 5349Myeclipse 8.6 离线安装ADT 最近想在Myec ... -
android网络与通信
2011-03-31 10:52 1531三种网络接口简述 标准Java接口 java.net.*提 ... -
android多媒体
2011-03-31 09:47 1579OpenCore的另外一个 ... -
数据存储 shared preference
2011-03-30 20:32 1616Android中一共提供了四种数据存储方式: Shared P ... -
双缓冲技术
2011-03-30 19:30 1717java双缓冲技术是 ... -
Android的view重绘
2011-03-30 15:18 4686android中实现view的更新有两组方法,一组是inval ... -
Android中采用的MVC框架
2011-03-30 15:02 1857MVC是当前比较流行的框 ... -
Android单线程模型
2011-03-29 21:32 2896当第一次启动一个Android程序时,Android会自动创建 ... -
TabWidget
2011-03-26 10:03 1390Android TabWidget/TabHost有两种使用方 ... -
状态栏提示Notification
2011-03-26 09:33 1431当有未接电话或者短信时,在手机顶部状态栏就会出现一个小图标,提 ... -
Gallery 拖动效果
2011-03-26 09:01 1184public class Activity01 exten ... -
Android Contentresolver的使用
2011-03-24 16:44 2057Android提供了ContentProvider,一个程序可 ... -
Android ContentProvider
2011-03-24 11:21 2224内容提供者(content provi ... -
Android SQLite
2011-03-24 10:36 2019SQLite 是一款非常流行的 ... -
android map的使用方法
2011-03-23 16:06 60181 Android Add-ons是Android中的可 ... -
android sdk的快速安装法
2011-03-23 14:53 20021.下载相关文件 下面的7个文件(当然,可以只下载其中一个) ... -
android的位置服务和地图
2011-03-22 19:21 1455实现位置服务的技术有GPS和google网络地图,将这些不同的 ... -
android 使用DOM解析xml
2011-03-22 16:52 1404美国地震信息网http://earthquake.usgs.g ...
相关推荐
Android中调用Webservice实现号码归属地查询案例!
android中调用webservice总结
android中调用webservice:ksoap2.jar
Android 利用axis2 调用webservice 包含j2ee服务端代码和Android客户端代码 代码实现包含 List,map ,对象传递
Android调用WebService,请参看博客《Android调用WebService之客户端实现(二)》
从Android端用io流读取到要上传的图片,用Base64编码成字节流的字符串,通过调用webservice把该字符串作为参数传到服务器端,服务端解码该字符串,最后保存到相应的路径下。整个上传过程的关键就是 以 字节流的字符...
Android与服务器端数据交互(基于SOAP协议整合android+webservice)
android 调用.net webservice
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动...既然是调用WebService,我们首先的搭建WebService服务器。 下面演示的就是如何通过该网站提供的手机
java android 调用webservice,java android 调用webservice
delphi XE5 ANDROID平台 调用 webservice并访问操作MSSQL数据库
通过此可以对android调用webservice有一个更深刻的认识
在Android 中使用KSOAP2调用WebService.docx
android调用webservice的封装好的类,有调用示例
附件包含Android端和Webservice端源码,直接架设到你的环境就可以使用。 内容是透过Webservice时间简单的加/减/乘/除等。若需连接数据库,则简单调整回传内容即可。
Android调用WebService的例子(包括服务器端和客户端)。服务器端使用CXF框架发布,Android客户端使用KSOAP2包读取数据。 分别提供了JavaBean、XML、JSON数据类型的通信方式。
Android调用webservice示例,webServcep返回实例,通过Json传递,接收后再还回实体
在Android平台调用Web Service需要依赖于第三方类库ksoap2,它是一个SOAP Web service客户端开发包,主要用于资源受限制的Java环境如Applets或J2ME应用程序(CLDC/ CDC/MIDP)。认真读完对ksoap2的介绍你会发现并...