初识WebService
最近小编在项目中要调用别人的接口,但是发现这个接口文档的方式非常的奇怪,因为后边有?wsdl,然后就顺着这个wsdl小树根,使我看到了WebService这棵大树。
WebService是什么
https://www.cnblogs.com/sandswitch/p/11127532.html
推荐这篇博客给大家,写的非常的详细,通俗的理解来说,webservice就是两个系统的远程调用,因为现在越来越多的功能需要我们做成软件,单一的软件已经不能满足我们的需求,那么我们就需要去调用别人的信息,但是自己写代码非常的麻烦和费时费力,所以webservice就出现了,我们只需要几句代码,就可以在别的系统远程获取我们需要的信息,真是太方便了!
那么webservice究竟包含什么东西呢,和我们平常的接口有什么不同呢?
之前的接口小编都是在前端调用,利用ajax,接口就是非常简单,地址/参数,就可以访问到了,这样的接口是http接口,但是现在这个接口呢,跟我们之前的接口不太一样,如下图:接口后边没有直接跟方法,而是“?wsdl”,这样的借口就是webservice接口,那么两种接口有什么区别呢?请看我推荐的这篇博客叭~
https://www.cnblogs.com/leeego-123/p/10404631.html
那么这样的webservice接口我们客户端需要怎么去调用?
(文档里接口的亚子↓↓↓)
如何调用webservice接口
有四种方式:
1.通过wsimport/cxf 生成客户端代码后调用本地的接口和方法即可。
2.通过客户端编程的方式调用
3.通过ajax调用 (js+XML)
4.通过URLConnection调用
具体详情可以看我推荐的第一篇博客,写的非常的详细,我也只是尝试了两种方法,能力有限,所以不在这里赘述。
这里主要分享我成功的一种方式:也就是第1种方法,通过cxf生成客户端代码后调用本地的接口和方法返回数据。
webservice生成客户端代码调用接口和测试
1.下载apache cxf的包,如apache-cxf-3.2.4,地址cxf.apache.org/download.html
(来自别人博客的图:↓↓)
2. 解压 apache-cxf-3.2.4.zip 至某一目录,eg__ D:\soft_install_work\apache-cxf-3.2.4
3.设置环境变量
3.1 CXF_HOME=D:\apache-cxf-2.7.10
3.2 在path后面加上 %CXF_HOME%/bin;
4.cmd 中运行 wsdl2java 工具
在cmd命令中输入wsdl2java,如果有提示usage,就表明配置成功
5. 在cmd命令中输入:wsdl2java -d D:\src -client http://api.xxx.cn/****/service/registerService?wsdl
其中D:\src是你要保存到你自己项目里的路径
http://api.xxx.cn/****/service/registerService?wsdl 是对接方给你的接口
此时便可以在 D:\src路径下生成 wsdl 代码
在项目里:(注意这些是生成的客户端代码,并不是人家的源代码喔)
6.测试接口:
代码如下,类似于我们日常调用接口,和调用方法,就是当成是自己的接口方法就可以了。
根据接口文档,接口是橘色框框,方法是粉色框框,参数是蓝色框框。
所以
1.实例化接口
2.实例化SyncAllDataServicePortType(包含方法的类),并复制接口.getPortType
3.调用方法,有参数将参数直接写括号里。
4.打印返回的xml/json文件
初识webservice接口,如有不正确,还请批评指正。