当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET的实时天气及24小时天气预报

ASP.NET
一个无刷新效果定时自动更新页面的例子
ASP.NET2.0的控件状态和视图状态探讨
用好ASP.NET 2.0的URL映射
详解:如何在.NET中访问MySQL数据库?
如何实现Asp与Asp.Net共享Session
利用.net的强大功能发送email
.NET中加密与解密QueryString的方法
Asp.net生成htm静态文件的两种途径
C#定时器的使用
从XML文件中读取数据绑定到DropDownList
ASP.NET 2.0 里输出文本格式流
用.net动态创建类的实例
.Net下的MSMQ的同步异步调用
ASP.NET 2.0实现防止同一用户同时登陆
asp.NET自定义服务器控件内部细节
组合.NET数据控件构建强大用户接口
用ASP.NET 2.0 FormView控件控制显示
菜鸟也学习ASP.NET如何读取数据库内容
教你简单方便获取Web设计的免费资源
专家详解:复杂表达式的执行步骤

ASP.NET的实时天气及24小时天气预报


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 68 ::
收藏到网摘: n/a

修改其中的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;
   }
   }
  }