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

一、 调用免费的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%,主要气候特点是炎热潮湿。南宁是一座旅游资源十分丰富,充满诗情画意的南国绿都。兼有现代园林城市风貌,被中外游人称为“南国绿都”是不足为怪的。景观:绿都南宁的旅游资源十分丰富,这里山、河、湖、溪与绿树鲜花交相辉映,南亚热带自然风光与现代园林城市的风貌融为一体,以南宁为中心的桂南旅游区是广西三大旅游区之一,清冽恒温的灵水、神秘的花山壁画、雄伟的德天瀑布、宁静的杨美古镇与壮族人娓娓动听的山歌构成了南宁古朴的山水人情画卷。
------------------------













  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Spring Boot应用中调用第三方WebService,你可以按照以下步骤进行操作: 1. 首先,在你的Spring Boot应用的pom.xml文件中添加Spring Web Services的依赖项。这可以通过在<dependencies>标签内添加以下代码来实现: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> ``` 2. 创建一个Java类来定义你的WebService客户端。你可以使用Spring Web Services提供的工具来生成客户端代码。在这个类中,你需要注入WebServiceTemplate来执行实际的WebService调用。你可以使用@Autowired注解来注入这个模板。例如: ```java @Component public class MyWebServiceClient { @Autowired private WebServiceTemplate webServiceTemplate; // 定义方法来执行WebService调用 public void callWebService() { // 在这里编写你的WebService调用逻辑 } } ``` 3. 在callWebService()方法中,你可以使用webServiceTemplate来执行实际的WebService调用。你需要提供WebService的URL、请求对象和响应对象。例如: ```java public void callWebService() { // 定义WebService的URL String url = "http://example.com/your-webservice"; // 创建请求对象 YourRequest request = new YourRequest(); // 设置请求参数 // 调用WebService并获取响应对象 YourResponse response = (YourResponse) webServiceTemplate.marshalSendAndReceive(url, request); // 处理响应对象 // ... } ``` 在这个例子中,YourRequest和YourResponse是你根据WebService的定义创建的Java类。 4. 最后,在你的应用中,你可以使用MyWebServiceClient来调用WebService。你可以在任何需要的地方注入该类,并调用callWebService()方法来执行WebService调用。 通过以上步骤,你就可以在Spring Boot应用中调用第三方WebService了。记得根据你的实际情况修改代码中的URL、请求对象和响应对象。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot调第三方WebService接口(.wsdl与.asmx类型 )](https://blog.csdn.net/ganquanzhong/article/details/119938295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值