首页 > 代码库 > WebServic调用天气预报服务

WebServic调用天气预报服务

     在项目开发中,我们除了发布WebService提供客户调用外,也经常需要调用一些客户或者第三方的WebService服务,这里就通过一个Demo来演示调用一个第三方的天气预报服务。

1.天气预报服务接口说明:

技术分享

这里以http://www.webxml.com.cn/WebServices/WeatherWebService.asmx这个天气预报服务为例

2.新建空mvc项目MvcAppService

技术分享

3.引入Web服务。在项目引用上右键,选择“添加服务引用”,如下图:

技术分享

4.在弹出的添加服务引用窗口单击“高级”按钮,如下图:

技术分享

5.在弹出的窗体中单击“添加Web引用”按钮,如下图:

技术分享

6.输入Web服务地址,修改Web引用名称,如下图:

技术分享

 7.从 http://www.webxml.com.cn/images/weather.zip下载天气图片,然后解压文件,将文件夹weather复制到项目Content文件夹下(空项目没有Content文件夹,自己创建)

技术分享

8.添加Home控制器,和两个GetWeather方法,实现代码。

 public ActionResult GetWeather()        {            return View();        }        [HttpPost]        public ActionResult GetWeather(string city)        {            Weather.WeatherWebService client = new Weather.WeatherWebService();            var strlist = client.getWeatherbyCityName(city);            if(strlist[8] == "")            {                ViewBag.Msg = "暂时不支持你查询的城市";            }            else            {                ViewBag.ImgUrl = @"/Content/weather/" + strlist[8];                ViewBag.General = strlist[1] + " " + strlist[6];                ViewBag.Actually = strlist[10];            }            return View();        }

9.添加GetWeather视图,代码如下:

@{    Layout = null;}<!DOCTYPE html><html><head>    <meta name="viewport" content="width=device-width" />    <title>GetWeather</title></head><body>    @using (Html.BeginForm("GetWeather", "Home", FormMethod.Post))    {        <div>请输入查询的城市:@Html.TextBox("city")<input type="submit" value=http://www.mamicode.com/"查询" /></div>        <div>            天气概况:@ViewBag.General            @if (!string.IsNullOrEmpty(ViewBag.ImgUrl as string))            {                <img src=http://www.mamicode.com/"@ViewBag.ImgUrl" />            }            <div>天气实况:@ViewBag.Actually</div>            <div>@ViewBag.Msg</div>        </div>    }</body></html>

10.运行结果如下:

技术分享

 

WebServic调用天气预报服务