ASP.Net WebServie简单应用之天气预报例子

  使用 Visual Studio.Net来使用WebService是很方便的。下面做了一个小例子,通过一个提供气预报的WebService网址来简单实现天气预报这么一个功能:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx 。

  在实现这么一个小功能前看一下 WebService的定义

  Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。

  1、提供相关服务的WebService网址

View Code
天气预报Web服务,数据来源于中国气象局
Endpoint  :http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
Disco     :http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

IP地址来源搜索 WEB 服务(是目前最完整的IP地址数据)
Endpoint  :http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx
Disco     :http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl

随机英文、数字和中文简体字 WEB 服务
Endpoint :http://www.webxml.com.cn/WebServices/RandomFontsWebService.asmx
Disco        :http://www.webxml.com.cn/WebServices/RandomFontsWebService.asmx?disco
WSDL       :http://www.webxml.com.cn/WebServices/RandomFontsWebService.asmx?wsdl

中国邮政编码 <-> 地址信息双向查询/搜索 WEB 服务
Endpoint :http://www.webxml.com.cn/WebServices/ChinaZipSearchWebService.asmx
Disco        :http://www.webxml.com.cn/WebServices/ChinaZipSearchWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/ChinaZipSearchWebService.asmx?wsdl

验证码图片 WEB 服务 支持中文、字母、数字 图像和多媒体
Endpoint :http://www.webxml.com.cn/WebServices/ValidateCodeWebService.asmx
Disco          :http://www.webxml.com.cn/WebServices/ValidateCodeWebService.asmx?disco
WSDL       :http://www.webxml.com.cn/WebServices/ValidateCodeWebService.asmx?wsdl

Email 电子邮件地址验证 WEB 服务
Endpoint :http://www.webxml.com.cn/WebServices/ValidateEmailWebService.asmx
Disco        :http://www.webxml.com.cn/WebServices/ValidateEmailWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/ValidateEmailWebService.asmx?wsdl

中文简体字 <->繁体字转换 WEB 服务
Endpoint :http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx    
Disco         :http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?disco
WSDL        :http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl

中文 <-> 英文双向翻译 WEB 服务
Endpoint :http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx
Disco        :http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx?wsdl

火车时刻表 WEB 服务 (第六次提速最新列车时刻表)
Endpoint :http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx
Disco        :http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx?wsdl

中国股票行情数据 WEB 服务(支持深圳和上海股市的基金、债券和股票)
Endpoint :http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx
Disco         :http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx?wsdl

即时外汇汇率数据 WEB 服务
Endpoint :http://www.webxml.com.cn/WebServices/ExchangeRateWebService.asmx
Disco        :http://www.webxml.com.cn/WebServices/ExchangeRateWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/ExchangeRateWebService.asmx?wsdl

腾讯QQ在线状态 WEB 服务
Endpoint :http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx
Disco         :http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?disco
WSDL       :http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl

中国电视节目预告(电视节目表) WEB 服务
Endpoint :http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx
Disco        :http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/webservices/ChinaTVprogramWebService.asmx?wsdl

外汇-人民币即时报价 WEB 服务
Endpoint :http://www.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx
Disco        :http://www.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/ForexRmbRateWebService.asmx?wsdl

中国股票行情分时走势预览缩略图 WEB 服务
Endpoint : http://www.webxml.com.cn/webservices/ChinaStockSmallImageWS.asmx
Disco        : http://www.webxml.com.cn/webservices/ChinaStockSmallImageWS.asmx?disco
WSDL      : http://www.webxml.com.cn/webservices/ChinaStockSmallImageWS.asmx?wsdl

国内飞机航班时刻表 WEB 服务
Endpoint :http://www.webxml.com.cn/webservices/DomesticAirline.asmx
Disco         : http://www.webxml.com.cn/webservices/DomesticAirline.asmx?disco 
WSDL       : http://www.webxml.com.cn/webservices/DomesticAirline.asmx?wsdl

中国开放式基金数据 WEB 服务
Endpoint :http://www.webxml.com.cn/WebServices/ChinaOpenFundWS.asmx
Disco        : http://www.webxml.com.cn/WebServices/ChinaOpenFundWS.asmx?disco
WSDL      :http://www.webxml.com.cn/WebServices/ChinaOpenFundWS.asmx?wsdl

股票行情数据 WEB 服务(支持香港、深圳、上海基金、债券和股票;支持多股票同时查询)
Endpoint :http://www.webxml.com.cn/WebServices/StockInfoWS.asmx
Disco        :http://www.webxml.com.cn/WebServices/StockInfoWS.asmx?disco
WSDL       :http://www.webxml.com.cn/WebServices/StockInfoWS.asmx?wsdl

  

  2、实现过程

  建一个WebServiceDemoASP.NET项目,接着右键添加WEB引用

 

  新建一个Demo.aspx页面,并接着拉两个DropDownList,查看一下前端的页面代码:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="DdlProvice" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropRegionCountry_SelectedIndexChanged">
        </asp:DropDownList>
        &nbsp;<asp:DropDownList ID="ddlCity" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlCity_SelectedIndexChanged">
        </asp:DropDownList>
        <br />
        <br />
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>

 

  后端的代码实现:

View Code
using System.Web.UI.WebControls;

namespace WebServiceDemo
{
    public partial class Demo1 : System.Web.UI.Page
    {
        cn.com.webxml.webservice.WeatherWS w = new cn.com.webxml.webservice.WeatherWS();

        protected void Page_Load(object sender, EventArgs e)
        {
            string[] Provinces = w.getRegionProvince();

            foreach (var provice in Provinces)
            {
                string[] item = provice.Split(',');
                string name = item[0];
                string value = item[1];
                DdlProvice.Items.Add(new ListItem(name, value));

            }
        }

        protected void DropRegionCountry_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddlCity.Items.Clear();

            string[] Citys = w.getSupportCityString(DdlProvice.SelectedValue);
            foreach (var city in Citys)
            {
                string[] item = city.Split(',');
                string name = item[0];
                string value = item[1];
                ddlCity.Items.Add(new ListItem(name, value));
            }
        }

        protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
        {
            string[] Weathers = w.getWeather(ddlCity.SelectedValue, "");
            string result = "";
            foreach (var item in Weathers)
            {
                result += item + "<br/>";
            }
            Literal1.Text = result;
        }
    }
}

  因为感觉代码比较简单,所以不作解释了。最后效果图:

posted @ 2012-09-01 20:32  春天又来了  阅读(807)  评论(0编辑  收藏  举报