小小积累,天气预报~

今天看到公司的一个原来的网站天气预报的那个web服务好像死了,然后就抽时间自己看了下,别看这个功能貌似简单,但是对于我来说,却也弯弯绕了下,不管怎么说,也算是一种积累。废话不多说,代码:

前台:


<head runat="server">
    <title>天气预报~</title>
</head>
<body>
    <form id="form1" runat="server">
    地名: <asp:TextBox ID="TB_DIMING" Text="北京" runat="server"></asp:TextBox>
    <asp:Button ID="Btn_Tijiao" runat="server" Text="提交" OnClick="Btn_Tijiao_Click" />
    <div style="width: 300px; height: 110px; border: 1px solide #ccc">
        <table style="width: 100%; height: 80px;">
            <tr>
                <td style="width: 30%;">
                    <table>
                        <tr>
                            <td>
                                <asp:Literal ID="Literal1" runat="server"></asp:Literal>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <b><asp:Literal ID="Literal2" runat="server"></asp:Literal></b>
                            </td>
                        </tr>
                    </table>
                </td>
                <td>
                    <table>
                        <tr>
                            <td>
                                <b>温度:</b><asp:Literal ID="Literal3" runat="server"></asp:Literal>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <b>风力:</b><asp:Literal ID="Literal4" runat="server"></asp:Literal>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <b>空气质量:</b><asp:Literal ID="Literal5" runat="server"></asp:Literal>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>

前台页面挺糙的,这个我知道,主要是说这个功能实现的过程:

后台:


protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            disp_weather("北京");
        }
    }

    public void Btn_Tijiao_Click(object sender, EventArgs e)
    {
        string diming = TB_DIMING.Text.Trim();
        if (diming != "")
            disp_weather(diming);
    }

private void disp_weather(string city)
    {
        try
        {
            string[] arrAy = null;
            ArrayList weather = Bnn_Weather.Get_3day_weather(city);
            if (weather.Count > 0)
            {
                DateTime dt = Convert.ToDateTime(weather[3].ToString());

                Literal5.Text = weather[5].ToString().Replace("空气质量:", "");
                arrAy = weather[7].ToString().Split(‘ ‘);
                Literal2.Text = arrAy[1].ToString();
                Literal3.Text = weather[8].ToString();
                Literal4.Text = weather[9].ToString();
                if (weather[10].ToString() == weather[11].ToString())
                {
                    Literal1.Text = "<img src=\"../App_Themes/tqimg/b_" + weather[10].ToString() + "\" width=\"50\" height=\"46\" alt=‘" + arrAy[0].ToString() + "" + weather[1].ToString() + "天气预报:" + arrAy[1].ToString() + "‘ />";
                }
                else
                {

                    Literal1.Text = "<img src=\"../App_Themes/tqimg/b_" + weather[10].ToString() + "\" width=\"50\" height=\"46\" alt=‘" + arrAy[0].ToString() + "" + weather[1].ToString() + "天气预报:" + arrAy[1].ToString() + "‘/><img src=\"../App_Themes/tqimg/b_" + weather[11].ToString() + "\" width=\"50\" height=\"46\" alt=‘" + arrAy[1].ToString().Split(‘转‘)[1].ToString() + "‘/>";
                }
            }
        }
        catch (Exception)
        {
            Page.ClientScript.RegisterClientScriptBlock(GetType(), "asdf", "<script>alert(‘您提供的城市查不到‘)</script>");
        }

    }

    public class Bnn_Weather
    {
        public static ArrayList Get_3day_weather(string CityName)
        {
            try
            {
                //接口地址:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx
                WeatherWS wc = new WeatherWS();
                string[] strarr = wc.getWeather(CityName, "");
                ArrayList list = new ArrayList();
                int listLength = strarr.Length;
                if (listLength > 0)
                {
                    for (int i = 0; i < listLength; i++)
                    {
                        list.Add(strarr[i]);
                    }
                }
                return list;
            }
            catch (Exception e)
            {
                throw;
            }
        }
    }

之前百度了个例子是在工程里添加一个WebService,后来同事告我一个方法就是通过VS2010中的命令提示工具:WSDL http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx  然后会在本地输出一个类文件,其实性质是一样的,只是我不知道。

慢慢积累….

对了,还有就是附加上这个里面需要的天气图片:

http://files.cnblogs.com/houlin/tqimg.zip

小小积累,天气预报~

时间: 2024-10-10 20:44:07

小小积累,天气预报~的相关文章

PHP and laravel知识点小小积累

function () use ($x, &$y){} 自从PHP5.3开始有了closure/匿名函数的概念,在这里的use关键词的作用是允许匿名函数capture到父函数scope 内存在的$x和$y变量.其中&&y为引用方式capture,也就是说每次该匿名函数调用时,y的值如果 被修改了也反映在这里,而$x则是静态引用. <?php $message = "hello\n"; $example = function () { echo $messa

c#中单元测试

从走进.net后发现每天有写不完的代码,有做不完的测试...人感觉都已经机械,我们需要认清自己调整好心态,问下自己是否真的喜欢编程.我的答案当然也就是我爱编码,编码给我带来了许多欢乐,每天都给我体验小小成就.所以我要为我写的编码负责.那么先总结下测试方面的小小积累,作为以后复习的笔记. 在团队开发中单元测试扮演着一个很重要的角色. 例如:当你和你的团队一起开发时,由你写操作数据库的方法,其他人写界面,当你写好你的方法后你需要对你写的方法负责,不能说后面还有软件测试工程师,测试这种事留给他们去做.

三十多岁怎样积累财富

1. 为什么你该攒钱了 一个光明的财务未来对你来说很重要,因为你对自己退休和家庭未来的需要应该有个计划.另外,要实现你自己的财务目标,实现你的梦想,也需要一个计划. 如果你已经是30几岁,那么储蓄就是从现在开始最重要的事情了.成功人士之所以成功,就是因为他们很早就对他们的将来有个计划,也就是为了满足他们自己的目标和家庭需要,有一个全面的储蓄.积累财富的策略.剩下的人对此一无所知. 但如果你已经过了30岁这道门槛,也完全不必着急.管理财务.削减债务,何时都不晚.即便你的工作和事业还没到顶峰或最佳状

Android简易版天气预报app的实现(改进版)

最近总是有人来和我说我以前写的一个小app无法正常获取数据~Android简易版天气预报app 今天就又运行了下来查找问题,发现或许是接口有限制吧,不能在多台手机使用同个apikey 然后,发现了我写的代码实在乱七八糟,界面也实在不好看,就又重写了一遍,小小地修改了一遍,开发环境改为了Android Studio 最终效果图如下 工程图如下 一.获取地区信息 做这么一个天气预报app,首先就要获取到国内地区列表 (在我的另一篇博客有介绍:向任意网址发起数据请求) 中国天气网开放有天气预报接口,访

天气预报网站之设计篇

好久没写技术博客了,leetcode在刷,从开题后一直研究用Java和htmlparser开源库实现一个网络爬虫从而实现对某CSDN博客进行备份,直接对博客文章标题.文本和图片进行备份. 经过近一个月的研究,现在已经初步完成了对CSDN博客的备份,现在已可以基本做到对某个人的CSDN博客文章进行全站备份.对某人CSDN博客的某一个类别进行备份.对某个CSDN专栏进行备份三个功能.下一步就是想练练JSP.Servlet和Struts,顺便用一用自己积累的爬虫技术,所以我想到了一个主意,做一个天气预

小小测试员从业一年总结

临近大学毕业时老师的偶然提点坚定了自己从事软件测试职业的决心,第一次面试幸运的通过,如愿成为一名测试员. 如今已经在项目外包公司工作一年多,除正常工作时间外,加班也是家常便饭,期间学习了各种需要掌握的技术但是没一样精通的,顿时觉得自己也许仍然处于行业里可有可无的角色. 工龄一年的测试员到底应该是什么样的水平什么样的状态呢?自己达到了标准吗?带着这样的问题,写下这篇杂谈,总结自己的工作状态并进行反思. 1. 参与的项目数:从业一年多,参与项目将近10个,属于外包定制的分支项目,包含web,ios,

小小程序员找工作的一路经历

小小程序员找工作的一路经历 昨天下午把三方给了TP-LINK之后,为期将近两个月的找工作过程也算是告一个段落.两个月一路走来,压力巨大.人生的下一站到底会在哪里,无法预测.面对事业.家庭.爱情,总想找到一个最好的平衡点.选择Android开发,选择TP-LINK,选择深圳,这一路的选择必然会对未来产生极大的影响,而影响总是具有两面性.未来的路应该怎么走,如何把命运掌握在自己的手里,这值得深思. 感谢家人的支持,感谢女友的相伴,感谢朋友的建议,是你们让我有一种持续战斗的激情:同样感谢腾讯,是你让我

Nginx+Lua 积累

Nginx+Lua 积累 1.解析16进制编码的中文参数 复制代码 local encodeStr = "%E6%B0%94" local decodeStr = ""; for i = 2, #encodeStr - 1, 3 do local num = encodeStr:sub(i, i + 1); num = tonumber(num, 16); decodeStr = decodeStr .. string.char(num); end ngx.say(

Python天气预报数据获取脚本

近来公司大屏幕的天气接口老是出问题,之前用的是webservice的http://www.webxml.com.cn/WebServices/WeatherWebService.asmx这个接口,坑的是每个月的25号该服务暂停维护,因此不得不寻找新的接口替换... 然后我在网站上找了很多接口(大都是过期的或者非免费的!)...类似 国家气象局提供的天气预报接口http://www.weather.com.cn/data/sk/101010100.html 2014年6月最新更新的http://w