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

ASP.NET
如何在ASP.NET中使用SmtpMail发送邮件
在VB.NET中利用Split和Replace函数计算字数
Attribute应用:简化ANF自定义控件初始化过程
ASP.NET 2.0移动开发入门之使用样式
ASP.NET 2.0中使用OWC生成图表
ASP.NET 2.0中控件的简单异步回调
一个无法捕获ADO.NET Dataset的内存错误
深入解读ADO.NET2.0的十大最新特性
.Net平台下的分布式缓存设计
ASP.NET全局异常处理浅析
ASP.NET 2.0中文验证码的实现
浅析.NET平台编程语言的未来走向
.net 框架程序设计收藏
使用ASP.NET MVC Futures 中的异步Action
详解.NET中的XmlReader与XmlWriter
关于.NET中的Server push技术
asp.net页面执行机制
对比JSP和ASP.NET的存储过程
.NET 4.0不会包含System.Shell.CommandLine
ASP.NET十个有效性能优化的方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 136 ::
收藏到网摘: 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;
   }
   }
  }