webservice 调用国内航班,天气预报 等外部接口

简介:

通过前面的记录,我们知道发布一个服务之后,如果别人需要调用,则必须知道我们的wsdl地址,同理,我们要调用天气预报的接口,也必须得到该对应wsdl,下面给出比较齐全的wsdl网址,需要的可以自己去查阅:http://www.webxml.com.cn/zh_cn/web_services.aspx

wKiom1S_IhvieP_4AADi1iy0uko001.jpg


今天的例子,将讲解如何调用去全国电视tv的接口

通过查阅,可以得到该wsdl地址为:



http://webservice.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl

(一)、wsimport生成代理类

   wsimport在 jax-ws使用webservice中已经介绍使用过了,这里直接使用。

   创建new web项目,cmd进入项目路径

 准备将所有代理类,生成到com.xj.service 这个package中   

1
D:\workspace\HangBan\src>wsimport -p com.xj.tv -keep http: //webservice.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl

 使用jdk6编译报错 


[WARNING] src-resolve.4.2: Error resolving component 's:schema'. It was detected
 that 's:schema' is in namespace 'http://www.w3.org/2001/XMLSchema', but compone
nts from this namespace are not referenceable from schema document 'file:/E:/wor
kspace/practical/WebServiceWeather/src/com/weather/wsdl.xml#types?schema1'. If t
his is the incorrect namespace, perhaps the prefix of 's:schema' needs to be cha
nged. If this is the correct namespace, then an appropriate 'import' tag should
be added to 'file:/E:/workspace/practical/WebServiceWeather/src/com/weather/wsdl
.xml#types?schema1'.

.............


这应该是个bug

解决方法:将wsdl保存到本地,将所有的

<s:element ref="s:schema"/> 改成 <s:any minOccurs="2" maxOccurs="2"/> 并且将后面的

<s:any /> 删除。

再次执行wsimport命令,wsdl地址改为本地地址如下

wsimport -p com.xj.service -keep e:/hangban.xml

如果还是报错,就将wsdl文件里面的<wsdl:documentation 节点全部删除。应该就没问题了

生成好java文件之后 。就可以调用了。

wKiom1S_T77wBCnqAAK0hemBV1o789.jpg



可以看到com.xj.tv中都是通过wsimport生成的代理类,可以直接使用

上面有很多类,已经对应的response,我们要找到的是带有soap的类

(二)、客户端直接调用代理类

1
2
3
4
5
6
7
  ChinaTVprogramWebService service =  new  ChinaTVprogramWebService();
         ChinaTVprogramWebServiceSoap soap = service.getChinaTVprogramWebServiceSoap();
         ArrayOfString arrayOfString = soap.getTVchannelString( 80 );
         List<String> list = arrayOfString.getString();
         for (String string:list){
             System.out.println(list);
         }

给TVchannel任意一个id,例如80,可以看到输出结果

1
[ 411 @莆田电视台]


其他调用方式类似了




     本文转自布拉君君 51CTO博客,原文链接: http://blog.51cto.com/5148737/1606622 ,如需转载请自行联系原作者





相关文章
|
10月前
|
JavaScript 前端开发 API
python对接API二次开发高级实战案例解析:百度地图Web服务API封装函数(行政区划区域检索、地理编码、国内天气查询、IP定位、坐标转换)
python对接API二次开发高级实战案例解析:百度地图Web服务API封装函数(行政区划区域检索、地理编码、国内天气查询、IP定位、坐标转换)
241 0
|
4月前
|
SQL 数据可视化 API
数据工程实践:从网络抓取到API调用,解析共享单车所需要的数据
在本篇文章中,将解释网络抓取和APIs如何协同工作,从百科上抓取城市数据,利用APIs获取天气数据,从而推断出与共享单车相关的信息。
28 0
数据工程实践:从网络抓取到API调用,解析共享单车所需要的数据
|
10月前
调用百度文字转语音接口实现自动报时的解决方案
调用百度文字转语音接口实现自动报时的解决方案
69 0
|
10月前
|
定位技术 API
高德地图web服务API接口开发:获取IP定位显示当前位置的天气预报解决方案
高德地图web服务API接口开发:获取IP定位显示当前位置的天气预报解决方案
282 0
|
8月前
|
监控 搜索推荐 数据挖掘
利用API商品数据接口可以创造多种便利,以下通过几个具体例子来说明
在当今的数字化时代,API商品数据接口为许多企业和开发者提供了强大的资源。通过API商品数据接口,我们可以轻松地获取到各种商品信息,包括但不限于价格、库存、商品描述等,从而为我们创造便利。本文将通过几个具体例子来探讨如何利用API商品数据接口给我们创造便利。
|
8月前
|
编解码 前端开发 开发工具
国网B接口调阅实时视频(INVITE)接口描述和消息示例
前面三篇blog分别介绍国网B接口注册、资源上报和资源信息获取,今天过一下国网B接口调阅实时视频相关的接口描述和消息示例,做过GB28181设备接入的都知道,国网B接口调阅实时视频流程和GB28181的基本一致的,区别在于SDP的一些参数描述,有些差别,举个例子,调阅实时视频,GB28181的SDP里面“s=Play”,国网B接口SDP取值定义“s=-”,如果严格按照规范来,估计好多系统都没法正常接入。
用免费的webservice查询天气
用免费的webservice查询天气
150 0
用免费的webservice查询天气
|
安全 API
天气预报到底有什么作用?
天气预报是气象台(站)预先发出关于未来一定时期内的天气变化和趋势的报告。气象台运用现代科学技术(如卫星、雷达等)收集了全国甚至全世界的气象资料,根据天气演变规律,进行综合分析,科学判断,然后作出大范围的天气预报。气象站、哨根据大范围天气预报,结合本地区地形、天气特点、群众测天经验,作出单站补充预报。可分为短期、中期和长期预报。
350 0
天气预报到底有什么作用?
电竞CSGO数据API接口 - 【联赛列表】API调用示例代码
电竞CSGO数据API接口 - 【联赛列表】API调用示例代码
|
Java API Spring
电竞Dota2数据API接口 - 【联赛列表】API调用示例代码
分享使用 飞鲸体育数据 www.feijing88.com 接口调用的示例代码,Dota2的【联赛列表】接口。