WebService学习总结(四)——调用第三方提供的webService服务

本文介绍如何利用Java调用免费的WebService来获取指定城市的天气预报信息,包括使用wsimport工具生成客户端代码的方法及常见问题解决技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 调用免费的web service获取天气预报信息

1.1、找到提供天气预报信息的Webservice的网络地址

 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx 访问结果如下图所示:


找到WebService的wsdl描述,通过URL地址http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl:如下:

1.2、客户端编码方式访问第三方提供的webService服务

  1、借助wsimport命令工具自动生成客户端代码

  创建一个测试项目,如下:

  

  打开命令行窗口,切换到项目的src目录,执行"wsimport -keep http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"生成客户端代码,如下图所示:

  运行结果显示,使用wsimport工具直接生成客户端代码会抛异常, 无法生成客户端代码, 只是因为我们要调用的WebService是用.net写的,这个是Java调用net的webservice都有的问题,这个问题的解决办法如下:

  1. 将对应的wsdl文档保存到本地

  2、修改wsdl文档的部分内容: <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>

再次执行wsimport生成代码,这次使用保存在本地的WeatherWS.wsdl文件来进行生成,如下图所示:

  


2、借助生成的代码编写请求代码

package cn.com.webxml;


import java.util.List;




public class WeatherWSClient {


    public static void main(String[] args) {
        //创建一个WeatherWS工厂
     
    WeatherWebService factory = new WeatherWebService();
         //根据工厂创建一个WeatherWSSoap对象
    WeatherWebServiceSoap weatherWSSoap = factory.getWeatherWebServiceSoap();
         //调用WebService提供的getWeather方法获取南宁市的天气预报情况
         ArrayOfString weatherInfo = weatherWSSoap.getWeatherbyCityName("南宁");
         List<String> lstWeatherInfo = weatherInfo.getString();
         //遍历天气预报信息
         for (String string : lstWeatherInfo) {
             System.out.println(string);
             System.out.println("------------------------");
         }
        
        
    }

}

wsimport -keep -p com.demo.client -d G:\\javaWokespase\\soaptest\\src  http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl

wsimport -keep  -d G:\\javaWokespase\\soaptest\\src  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl


wsimport -keep http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

访问结果:

广西
------------------------
南宁
------------------------
59431
------------------------
59431.jpg
------------------------
2018/5/18 9:40:00
------------------------
26℃/34℃
------------------------
5月18日 阵雨转多云
------------------------
南风小于3级
------------------------
3.gif
------------------------
1.gif
------------------------
今日天气实况:气温:30℃;风向/风力:南风 1级;湿度:72%;紫外线强度:中等。空气质量:良。
------------------------
紫外线指数:中等,涂擦SPF大于15、PA+防晒护肤品。
健臻·血糖指数:易波动,血糖易波动,注意监测。
穿衣指数:炎热,建议穿短衫、短裤等清凉夏季服装。
洗车指数:不宜,有雨,雨水和泥水会弄脏爱车。
空气污染指数:良,气象条件有利于空气污染物扩散。


------------------------
26℃/34℃
------------------------
5月19日 阵雨转多云
------------------------
南风小于3级
------------------------
3.gif
------------------------
1.gif
------------------------
25℃/34℃
------------------------
5月20日 阵雨转多云
------------------------
南风小于3级
------------------------
3.gif
------------------------
1.gif
------------------------
南宁市是广西壮族自治区的首府,位于广西南部,地处亚热带,北回归线以南,介于北纬22°12′-24°32′,东经107°19′-109°38′之间,南宁是座美丽的城市,全市绿化覆盖率近40%,被形容为“半城绿树半城楼”。这里世代聚居着壮、汉、苗、瑶、侗、仫佬族,有着多姿多彩的民族文化风情。南宁历史悠久。晋代始设晋兴郡。唐贞观六年设邕州。她地处亚热带,四季常青,素有“绿色明珠”之誉。她又位于珠江上游,这段江河称邕江,故南宁又有“邕城”之称,这里冬泳较为时髦。南宁位于北回归线南侧,属湿润的亚热带季风气候,阳光充足,雨量充沛,霜少无雪,气候温和,夏长冬短,年平均气温在21.6度左右。冬季最冷的1月平均12.8摄氏度,夏季最热的7、8月平均28.2摄氏度。年均降雨量达1304.2毫米,平均相对湿度为79%,主要气候特点是炎热潮湿。南宁是一座旅游资源十分丰富,充满诗情画意的南国绿都。兼有现代园林城市风貌,被中外游人称为“南国绿都”是不足为怪的。景观:绿都南宁的旅游资源十分丰富,这里山、河、湖、溪与绿树鲜花交相辉映,南亚热带自然风光与现代园林城市的风貌融为一体,以南宁为中心的桂南旅游区是广西三大旅游区之一,清冽恒温的灵水、神秘的花山壁画、雄伟的德天瀑布、宁静的杨美古镇与壮族人娓娓动听的山歌构成了南宁古朴的山水人情画卷。
------------------------













评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值