• 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、运行结果:
    本文只是演示了简单的天气预报,其有更多功能:风向、风力、指数、实况、后三天配合多彩的图片,等待大家的开发。

天气webservices的更多相关文章

  1. webserver[实时查询当天的天气情况]

    1.webserver是什么? 日常生活中经常会使用到webserver,注册时,会收到验证码,购买东西时,会收到短信,假如,A公司网站和B公司合作,那么A公司注册对的用户可以直接推送给B网站,那怎么 ...

  2. webService获取电话号归属地和获取天气情况步骤,及创建属于自己的webservice

    一.什么是Web服务 Web服务是一种可以用来解决跨网络应用集成问题的开发模式,目的是保证不同平台的应用服务可以互操作 二.Web服务的三个核心 Soap: SOAP(Simple Object Ac ...

  3. C#调用WebService获取天气信息

    概述 本文使用C#开发Winform应用程序,通过调用<WebXml/>(URL:http://www.webxml.com.cn)的WebService服务WeatherWS来获取天气预 ...

  4. java调用 webservices接口实现天气预报

    最近要用到web services,而这两天也比较有空,就弄了一个获取天气预报的Util.以前以为这有多难,因为数据来源是个困难.现在用web services的技术,发现下面这个是相当不错的.下面就 ...

  5. 学习Webservice之入天气小试

    主要方法是:通过程序中设置代理用公司内网访问外部Webservice public InputStream getSoapInputStream(String url) { InputStream i ...

  6. 免费的天气Web Service接口

    免费的天气Web Service接口 在android应用当中很多时候需要获取天气的信息,这里提供怎么获取天气信息: 1. http://www.ayandy.com/Service.asmx?wsd ...

  7. qt 获取天气的接口

    博客来源:http://blog.csdn.net/lzqwebsoft/article/details/7054045 网站api接口:http://smart.weather.com.cn/wzf ...

  8. axis WebServices 完美调用天气预报,查询、显示 代码!

    axis WebServices 完美调用天气预报,查询.显示 代码! 效果: jsp页面: <%@ page language="java" import="ja ...

  9. android天气查询(一)websevice之ksoap2软件包的使用

    对于用到天气信息,首先我想: 第一:数据不可能是我测得的,必须是网上的信息. 第二:网上的信息分为好多种,具体哪种比较好一点,这里我总结了两种. 第三:数据JSON怎么解析. 第四:如何提出数据与显示 ...

随机推荐

  1. 【C-分支结构】

    一.关系运算符 双目运算符 自左向右结合 关系运算符的优先级低于算术运算符,高于赋值运算符 <(小于) <=(小于或等于) >(大于) >=(大于或等于) ==(等于) !=( ...

  2. SSH框架的简单示例(执行流程)

    本文转自一篇博文,感觉通俗易懂,适用于初学j2ee者,与大家一起分享 (一)struts框架部分 1.打开Myeclipse,创建一个web project,项目名称为TestSSH. 2.在web的 ...

  3. 记录HttpWebRequest辅助类

    最近因为工作关系,需要通过HttpWebRequest去请求API,所有就写了个简单的辅助public sealed class HttpRequestHelper { private static ...

  4. Android 自定义View 总结

    Android系统本身给我们提供十分丰硕的组件让我们实现包罗万象的UI效果,与此同时,我们也能够非常方便实现各种方法来实现各种强大的功能.通过继承现有的UI控件,我们也能够拓展现有的功能.我们也能够完 ...

  5. LIstView 滚动 异步 加载更多 mono for android ScrollStateChanged ScrollState.Idle; Fling;TouchScroll

    今天项目需要实现一下列表的分页加载 找到了Listview的ScrollStateChanged方法. 和大家分享一下 //先找到Listview ListView order = FindViewB ...

  6. array new 与 array deletedelete

    以前在看C++书和上C++课的时候可以看到 delete[] pointer; 的用法,而大多数对于这个用法没有具体的解释,多是看到: 有一个delete运算符的特殊语法,可以释放动态分配的数组内存: ...

  7. 千呼万唤始出来!—— GG(高仿QQ)终于有移动端了!(技术原理、实现、源码)

    首先要感谢大家一直以来对于GG的关注和支持!GG的不断完善与大家的支持分不开! 从2013年最初的GG1.0,到后来陆续增加了网盘功能.远程协助功能.离线文件功能.群聊功能.语音聊天功能.视频聊天功能 ...

  8. 《C#图解教程》读书笔记之六:接口和转换

    本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.接口那点事儿 (1)什么是接口? 一组函数成员而未实现的引用类型.只有类和结构能实现接口. (2)从ICom ...

  9. 四则运算的实现(C++)重做

    #include <iostream> using namespace std; void main() { int a0[1000],b0[1000],c0[1000],a1[1000] ...

  10. 使用ACE_Task管理线程

    为什么要使用ACE_Task来管理线程 从C#转到C++后,感觉到C++比C#最难的地方,就是在系统编程时,C#中有对应的类库,我接触到一个类后,就可以通过这个类,知道很多相关的功能.而在C++中,必 ...