访问webservice服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_30325009/article/details/82717386

 

目录

引入

第一步:下载CXF支持

第二步:创建java普通工程

第三步:测试类

解释

总结:

访问一个网上的web service的步骤:

参考:


引入

当你写着代码,喝着茶,突然想知道自己QQ是否在线怎么办呢?身为程序员的我们自然要与众不同。通过腾讯发布的web service服务,我们可以很方便的获取自己的QQ状态,甚至是你暗恋多年的那个她/他。。。。。

下面一起来玩吧~


第一步:下载CXF支持

访问http://cxf.apache.org/download.html。可以根据需要下载需要的版本。

将下载的文件解压。找到\apache-cxf-2.7.7\bin下。对于win10按住shift+右键。打开power shell,输入start cmd这样就可以在该目录下打开cmd。

输入:wsdl2java http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl 回车

执行成功后你会在目录下发现新生成的文件夹。

这样我们的第一步就结束了。点进去看一下,这不就是java文件吗?但是里面的程序又有些奇怪。这个以后再说。


第二步:创建java普通工程

这个没什么要注意的。

只是创建完工程后,要添加cxf文件夹下lib目录的jar包。

建议先创建一个user library。毕竟jar包有点多。


第三步:测试类

终于到最后了。TT

还记得之前生成的文件夹吗。只需要把那个文件夹copy到src下即可。

之后还需要有一个测试类。

package cn.com.webxml;

import org.apache.cxf.interceptor.StaxInEndingInterceptor;

public class Test {
	public static void main(String[] args) {
		//返回数据:String,Y = 在线;N = 离线;E = QQ号码错误;A = 商业用户验证失败;V = 免费用户超过数量

		String qqCode = "***********";	//一个QQ号	
		QqOnlineWebService qWebService = new QqOnlineWebService();

		//使用soap协议
		QqOnlineWebServiceSoap qqOnlineWebServiceSoap = qWebService.getQqOnlineWebServiceSoap();
		String res = qqOnlineWebServiceSoap.qqCheckOnline(qqCode);
		System.out.println(res);

	}
}

最后运行一下,就可可以看到结果了。


解释

例子说完了,但是诸位或许仍旧一脸懵*。下面我们就详细的了解一下这个过程。

之前我们在cxf下的bin目录中打开了cmd,并输入了wsdl2java http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl

wsdl2java 这个命令可以将后面的web service转换成我们需要的客户端代码。p.s. wsdl是一种基于xml的网络服务描述语言。

如果你在浏览器中打开着个网址。你会发现这个xml中的包含以下部分:type、message、typeport、binding

具体的内容这张图片是解释不了的,还需要参考一下别的资料。

在测试类中我们先实例化了QqOnlineWebService 。这个类其实是通过wsdl中服务访问点的集合名生成的。当我们使用一个web service时需要先实例化这个访问点类。

QqOnlineWebService qWebService = new QqOnlineWebService();

通过其下的get+port名我们可以实例化需要的服务。也就是程序中的

QqOnlineWebServiceSoap qqOnlineWebServiceSoap = qWebService.getQqOnlineWebServiceSoap();

最后调用需要的方法即可。

String res = qqOnlineWebServiceSoap.qqCheckOnline(qqCode);

总结:

访问一个网上的web service的步骤:

  • 实例化访问点类(可以先打开网址,查看wsdl)
  • 获取需要的服务对象。
  • 访问服务提供的方法。
  • 对结果进行处理。

参考:

常用免费的WebService列表 https://blog.csdn.net/posonrick/article/details/45482761

菜鸟上的wsdl讲解 http://www.runoob.com/wsdl/wsdl-ports.html

ryxxlong的wsdl讲解 http://ryxxlong.iteye.com/blog/1505366

猜你喜欢

转载自blog.csdn.net/baidu_30325009/article/details/82717386