ASP.NET的实时天气及24小时天气预报(C#)

  • 来源: 互联网 作者: rocket   2008-03-24/15:06
  •  ASP.NET的实时天气及24小时天气预报(C#) 修改其中的url获得其他城市的天气情况
    如广州为:
    http://weather.yahoo.com/forecast/CHXX0037_c.html
    注意仅适用于获得yahoo上的天气预报


    GetWeather.aspx
    -----------------------------------

    <%@ Page language="c#" Codebehind="GetWeather.aspx.cs" AutoEventWireup="false" Inherits="test.GetWeather" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
        <HEAD>
            <title>GetWeather</title>
            <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
            <meta name="CODE_LANGUAGE" Content="C#">
            <meta name="vs_defaultClientScript" content="JavaScript">
            <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        </HEAD>
        <body>
            <form id="GetWeather" method="post" runat="server">
                <FONT face="宋体">
                    <P>
                        <asp:Label id="lblWeather" runat="server">Weather</asp:Label></P>
                    <P>
                        <asp:Button id="btnGet" runat="server" Text="Get Weather"></asp:Button></P>
                    <P>
                        <asp:Label id="Weather2" runat="server">24小时天气</asp:Label></P>
                    <P>
                        <asp:Button id="btnGet2" runat="server" Text="天气预报"></asp:Button></P>
                </FONT>
            </form>
        </body>
    </HTML>

     

     

    getWeather.aspx.cs
    ---------------------------------------

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Net;
    using System.IO;

    namespace test
    {

        public class GetWeather : System.Web.UI.Page
        {
            protected System.Web.UI.WebControls.Label lblWeather;
            protected System.Web.UI.WebControls.Label Weather2;
            protected System.Web.UI.WebControls.Button btnGet2;
            protected System.Web.UI.WebControls.Button btnGet;
        
            private void Page_Load(object sender, System.EventArgs e)
            {
                // Put user code to initialize the page here
            }

            #region Web Form Designer generated code
            override protected void OnInit(EventArgs e)
            {
                //
                // CODEGEN: This call is required by the ASP.NET Web Form Designer.
                //
                InitializeComponent();
                base.OnInit(e);
            }
            
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {    
                this.btnGet.Click += new System.EventHandler(this.btnGet_Click);
                this.btnGet2.Click += new System.EventHandler(this.btnGet2_Click);
                this.Load += new System.EventHandler(this.Page_Load);

            }
            #endregion

            private void btnGet_Click(object sender, System.EventArgs e)
            {

                WebRequest wreq=WebRequest.Create("http://weather.yahoo.com/forecast/CHXX0037_c.html");
                    
                HttpWebResponse wresp=(HttpWebResponse)wreq.GetResponse();
                        
                string HTML ="";
                Stream s=wresp.GetResponseStream();
                    
                StreamReader objReader = new StreamReader(s);

                string sLine = "";
                int i = 0;

                while (sLine!=null)
                {
                    i++;
                    sLine = objReader.ReadLine();
                    if (sLine!=null)
                        HTML += sLine;
                }
                    
                String temp= "";
                int start,stop;
                                
                start = HTML.IndexOf("<!-- CURCON-->",0,HTML.Length);

                stop = HTML.IndexOf("<!-- END CURCON-->",0,HTML.Length);

                temp = HTML.Substring(start, stop - start);
                start = temp.IndexOf("<b>");
                stop = temp.IndexOf("</b>");
                
                string degree = temp.Substring(start+3,stop - start -3);

                start = temp.IndexOf("<img");
                stop = temp.IndexOf("</td>",start);

                string img = temp.Substring(start,stop - start);
                lblWeather.Text = degree + "<br>" + img;
                    
            }

            private void btnGet2_Click(object sender, System.EventArgs e)
            {
                WebRequest wreq=WebRequest.Create("http://cn.weather.yahoo.com/CHXX/CHXX0037/index_c.html");
                    
                HttpWebResponse wresp=(HttpWebResponse)wreq.GetResponse();
                        
                string HTML ="";
                Stream s=wresp.GetResponseStream();
                    
                StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding("GB2312"));
        

                string sLine = "";
                int i = 0;

                while (sLine!=null)
                {
                    i++;
                    sLine = objReader.ReadLine();
                    if (sLine!=null)
                        HTML += sLine;
                }
                    
                String temp= "";
                int start,stop;
                                
                start = HTML.IndexOf("<table border=0 cellpadding=2 cellspacing=1 bgcolor=9999cc width=\"85%\">",0,HTML.Length);

                stop = HTML.IndexOf("</table>",start)+8;
                

                temp = HTML.Substring(start, stop - start);
                Weather2.Text = temp;        
            }
        }


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多