一个简单的WebService调用天气预报接口的demo 您所在的位置:网站首页 天气预报调用代码怎么写 一个简单的WebService调用天气预报接口的demo

一个简单的WebService调用天气预报接口的demo

2023-08-06 05:17| 来源: 网络整理| 查看: 265

很长一段时间没更新博客了,最近刚跳槽成功,工作也慢慢稳定下来了,后面也会陆陆续续更新。

现在的公司用到了WebService,以前没用过,所以学习一下记录下来。

什么是WebService?

首先附上百度百科地址:WebService

简而言之,WebService是一种跨语言跨平台的远程调用技术。我们知道,在我们的日常web开发中,都是我们自己开发接口,自己去调这些接口,但是有种情况:接口不是我们写的,是第三方提供的,我们需要去调其它平台上其它语言的接口,我们就可以用WebService去实现。比如天气预报接口,我们完全可以去调用第三方天气预报接口来完成我们的业务需求。

关于WebService你必须要了解的一些东西?

除了上面的“什么是WebService”,你必须还要了解下面3样东西

XML:是一种可扩展编译语言,是SOAP传递数据的基础。SOAP:简单对象访问协议,它是WebService的通讯协议。具体的解释,就是当WebService通过http请求数据与响应信息时,将请求内容与响应内容通过XML格式将数据进行格式化封装并且加上了特定的消息头,这就是SOAP协议。SOAP = http协议+XML数据WSDL:本质上是XML文档,它一般由开发工具自动生成,它描述了WebService接口信息,比如入参,出参,接口名称等等,当我们需要调用第三方WebService接口时,我们必须要知道WebService的WSDL地址。WebService可以有两种方式来暴露他的WSDL地址:第一种.注册到UDDI中,以便被人查找;第二种.直接告诉调用者地址。 开始我们的天气预报demo

先上程序启动类

public class WeatherForecastService { public static void main(String[] args) throws RemoteException, ServiceException { System.out.println("======程序启动======"); String result[] = QueryWeatherForecastInfo("杭州"); for (String r : result) System.out.println(r); System.out.println("======程序结束======"); } public static String[] QueryWeatherForecastInfo(String cityName) throws RemoteException, ServiceException { String[] arr = {}; return arr; } }

上面的代码片段中,QueryWeatherForecastInfo是我们主要用来调用第三方接口的方法,这里为了演示不报错,暂时返回个空的String数组。

第三方天气预报WebService接口WSDL地址(网上有很多,不一定用我举例的这个):

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

打开以后,看到的信息即是WSDL文档对webservice接口的说明信息。

将网页上的文本信息拷贝下来,去掉黑色字体(无用的),如下图。

保存成一个.wsdl格式的文件

将这个.wsdl文件拷贝到我们的src目录下

右键此文件,Web Service -- >  Generate Client

我们会看到自动给我们生成了很多的代码。

我们只需要调其中我们需要的方法就行了。

代码如下:

public class WeatherForecastService { public static void main(String[] args) throws RemoteException, ServiceException { System.out.println("======程序启动======"); String result[] = QueryWeatherForecastInfo("杭州"); for (String r : result) System.out.println(r); System.out.println("======程序结束======"); } public static String[] QueryWeatherForecastInfo(String cityName) throws RemoteException, ServiceException { WeatherWebServiceLocator locator = new WeatherWebServiceLocator(); // 调用xxLocator对象的getXXPort()方法生成xxSoapBindingStub对象 WeatherWebServiceSoapStub stud = (WeatherWebServiceSoapStub) locator.getWeatherWebServiceSoap(); // 输出当天的天气状况 String[] weather = stud.getWeatherbyCityName("杭州"); return weather; } }

运行一下,输出如下:

至此,一个调用第三方接口的WebService的demo就完成了



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有