| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 293 人关注过本帖
标题:ASP.NET的实时天气及24小时天气预报
收藏  订阅  推荐  打印 
wangnannan
Rank: 2
等级:注册会员
帖子:61
积分:744
注册:2007-11-3
ASP.NET的实时天气及24小时天气预报

网上找到的 运行一下 点击第一个按钮出现
StartIndex 不能小于 0。
参数名: startIndex
点击第二个按钮出现远程服务器返回错误: (404) 未找到。
由于从没做过所以也不明白是怎么回事 希望大家给看一下




<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<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="form1" 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" OnClick="btnGet_Click2"></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>






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;
public partial class _Default : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    #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



    protected void btnGet_Click(object sender, 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;


    }

    protected void btnGet2_Click(object sender, 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;         
         


    }

}
搜索更多相关主题的帖子: 天气预报  NET  实时  ASP  
2008-9-15 11:30
hebingbing
Rank: 12Rank: 12Rank: 12
来自:泰山学院
等级:版主
威望:10
帖子:3071
积分:32426
注册:2007-10-22

要实现这个一般都是通过气象台提供的webservices来实现的……
你的这个例子我也不知道是不是应用了没有,所以也看不出来什么愿意,我有一个完整的例子,如果需要联系我……

【www.bcsnjd.cn】编程少年基地:提供在线视频教程、电子图书、程序源码等众多资源,欢迎访问
本人免费做asp.net,c#,asp,vb等毕业设计。要求想法极具创新QQ:491131231
2008-9-15 12:46
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.052518 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved