• 天气webservices


    • Web现状
    • Web服务
      • 概念
      • 具有web服务
      • 构成
      • UDDI
      • WSDL
    • 天气预报
    web服务现状
        记的以前看VB.NET时中间就介绍了WSDL,而今又学到web服务,所以用天气预报的实例学习一下。LET'S GO
        在说web服务以前,先说说为什么会产生web服务,毕竟“存在即合理”,Internet现状:

        每一个web服务器都是独立存在的,好像是孤岛一般,没什么交互。web服务的产生就是为了加强之间的交互。
    什么是服务?
        Web服务(Web Service)是基于XML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。 Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API,能够用编程的方法通过Web来调用这个应用程序。
        单纯的web服务器交互很少,有了web服务以后呢?
        可以看出具有web服务的网络各个服务器之间的交互明显增多。那么是web服务都有哪些部分构成?
    web服务组成
        UDDI和WSDL。
        UDDI: "Universal Description, Discovery and Integration",可以翻译为“通用描述、发现与集成服务”,这是一种目录服务,可以使用它对 Web services 进行注册和搜索。也就是说你想发布网络服务,现在这里注册,你想使用服务,可以来这里搜索。
        WDSL:"Web Services Description Language",web服务描述语言,是一个用来描述Web服务和说明如何与Web服务通信的XML语言,为用户提供详细的接口说明书。
    天气预报
        我 们用的是WebXml.com.cn天气预报 Web 服务,数据来源于中国气象局http://www.cma.gov.cn/,数据每2.5小时左右自动更新一次,包括 340 多个中国主要城市和 60 多个国外主要城市三日内的天气预报数据,使用的服务地址 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx,使用本站 WEB 服务请注明或链接本站:http://www.webxml.com.cn/ 感谢大家的支持!
        服务方法:
        getSupportCity:查询本天气预报Web Services支持的国内外城市或地区信息,输入参数:byProvinceName = 指定的洲或国内的省份,若为ALL或空则表示返回全部城市;返回数据:一个一维字符串数组 String(),结构为:城市名称(城市代码)。
        getSupportDataSet:获得本天气预报Web Services支持的洲、国内外省份和城市信息,输入参数:无;返回:DataSet 。DataSet.Tables(0) 为支持的洲和国内省份数据,DataSet.Tables(1) 为支持的国内外城市或地区数据,DataSet.Tables(0).Rows(i).Item("ID") 主键对应 DataSet.Tables(1).Rows(i).Item("ZoneID") 外键。Tables(0):ID = ID主键,Zone = 支持的洲、省份;Tables(1):ID 主键,ZoneID = 对应Tables(0)ID的外键,Area = 城市或地区,AreaCode = 城市或地区代码。
        getSupportProvince:获得本天气预报Web Services支持的洲、国内外省份和城市信息,输入参数:无; 返回数据:一个一维字符串数组 String(),内容为洲或国内省份的名称。
        getWeatherbyCityName:根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数,调用方法如下:输入参 数:theCityName = 城市中文名称(国外城市可用英文)或城市代码(不输入默认为上海市),如:上海 或 58367,如有城市名称重复请使用城市代码查询(可通过 getSupportCity 或 getSupportDataSet 获得);返回数据: 一个一维数组 String(22),共有23个元素。String(0) 到 String(4):省份,城市,城市代码,城市图片名称,最后更新时间。String(5) 到 String(11):当天的 气温,概况,风向和风力,天气趋势开始图片名称(以下称:图标一),天气趋势结束图片名称(以下称:图标二),现在的天气实况,天气和生活指数。 String(12) 到 String(16):第二天的 气温,概况,风向和风力,图标一,图标二。String(17) 到 String(21):第三天的 气温,概况,风向和风力,图标一,图标二。String(22) 被查询的城市或地区的介绍
    下载天气图标(包含大、中、小尺寸) 天气图例说明 调用此天气预报Web Services实例下载 (VB ASP.net 2.0)
        getWeatherbyCityNamePro:根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数(For商业用户),调用方法同 getWeatherbyCityName,输入参数:theUserID = 商业用户ID
        WSDL
        部分wdsl如下:
    1. <wsdl:portType name="WeatherWebServiceHttpGet">  
    2. <wsdl:operation name="getSupportCity">  
    3. <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">  
    4. <br /><h3>查询本天气预报Web Services支持的国内外城市或地区信息</h3><p>输入参数:byProvinceName = 指定的洲或国内的省份,若为ALL或空则表示返回全部城市;返回数据:一个一维字符串数组 String(),结构为:城市名称(城市代码)。</p><br />  
    5. </wsdl:documentation>  
    6. <wsdl:input message="tns:getSupportCityHttpGetIn"/>  
    7. <wsdl:output message="tns:getSupportCityHttpGetOut"/>  
    8. </wsdl:operation>  
    9. <wsdl:operation name="getSupportProvince">  
    10. <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">  
    11. <br /><h3>获得本天气预报Web Services支持的洲、国内外省份和城市信息</h3><p>输入参数:无; 返回数据:一个一维字符串数组 String(),内容为洲或国内省份的名称。</p><br />  
    12. </wsdl:documentation>  
    13. <wsdl:input message="tns:getSupportProvinceHttpGetIn"/>  
    14. <wsdl:output message="tns:getSupportProvinceHttpGetOut"/>  
    15. </wsdl:operation>  
    16. <wsdl:operation name="getSupportDataSet">  
    17. <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">  
    18. <br><h3>获得本天气预报Web Services支持的洲、国内外省份和城市信息</h3><p>输 入参数:无;返回:DataSet 。DataSet.Tables(0) 为支持的洲和国内省份数据,DataSet.Tables(1) 为支持的国 内外城市或地区数据。DataSet.Tables(0).Rows(i).Item("ID") 主键对 应 DataSet.Tables(1).Rows(i).Item("ZoneID") 外键。<br />Tables(0):ID = ID主键,Zone = 支持的洲、省份;Tables(1):ID 主键,ZoneID = 对应Tables(0)ID的外键,Area = 城市或地区,AreaCode = 城市或地区代码。</p><br />  
    19. </wsdl:documentation>  
    20. <wsdl:input message="tns:getSupportDataSetHttpGetIn"/>  
    21. <wsdl:output message="tns:getSupportDataSetHttpGetOut"/>  
    22. </wsdl:operation>  
    23. <wsdl:operation name="getWeatherbyCityName">  
    24. </wsdl:portType>  
        使用服务
        1、获取、引用服务:
        解决方案管理器---App_WebReferences---添加web引用---输入“http://www.webxml.com.cn/WebServices/WeatherWebService.asmx”---添加引用:
        2、后台代码:
    1. protected void Page_Load(object sender, EventArgs e)  
    2. {  
    3.         cn.com.webxml.www.WeatherWebService CNweather = new cn.com.webxml.www.WeatherWebService();//实例化服务  
    4.         string[] weather = CNweather.getWeatherbyCityName("廊坊");//根据城市名获取天气信息  
    5.         txtTemp.Text = weather[5];//气温  
    6.         txtSurvey.Text = weather[6];//概况  
    7.         txtWindDirection.Text = weather[7];//风力  
    8.     }  
        3、运行结果:
        本文只是演示了简单的天气预报,其有更多功能:风向、风力、指数、实况、后三天配合多彩的图片,等待大家的开发。


  • 相关阅读:
    第二十九课 循环链表的实现
    第二十八课 再论智能指针(下)
    第二十七课 再论智能指针(上)
    第二十六课 典型问题分析(Bugfix)
    普通new和placement new的重载
    leetcode 581. Shortest Unsorted Continuous Subarray
    leetcode 605. Can Place Flowers
    leetcode 219. Contains Duplicate II
    leetcode 283. Move Zeroes
    leetcode 217. Contains Duplicate
  • 原文地址:https://www.cnblogs.com/liupeng61624/p/3659014.html
Copyright © 2020-2023  润新知