C# QQ weather (二)

    /// <summary>
    /// 2011-06-16 塗聚文
    /// </summary>
    public partial class QQweather : System.Web.UI.Page
    {

        public string selectcity = "1";
        string strUrl = "http://weather.qq.com/inc/ss1.htm";
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
            HttpWebRequest req = (HttpWebRequest)WebRequest.CreateDefault(new Uri("http://www.dupcit.com/QQweather.aspx"));
            req.Method = "GET";
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            selectcity = DropDownList1.SelectedValue.ToString();
            if (!IsPostBack)
            {

                this.DropDownList1.DataSource = CreateDataSource();
                DropDownList1.DataTextField = "WeatherTextField";
                DropDownList1.DataValueField = "WeatherValueField";

                // Bind the data to the control.
                DropDownList1.DataBind();

                // Set the default selected item, if desired.
                DropDownList1.SelectedIndex = 0;
                selectcity = @"1";               
                strUrl = "http://weather.qq.com/inc/ss1.htm";
                geovindu.InnerHtml = getHttpData(strUrl); 
            }


        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button1_Click(object sender, EventArgs e)
        {
            ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
            HttpWebRequest req = (HttpWebRequest)WebRequest.CreateDefault(new Uri("http://www.dupcit.com/QQweather.aspx"));
            req.Method = "GET";
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            selectcity = DropDownList1.SelectedValue.ToString();
            strUrl = "http://weather.qq.com/inc/ss"+selectcity+".htm";
            geovindu.InnerHtml = getHttpData(strUrl); 




        }
        /// <summary>
        /// <%# selectcity%>
        /// </summary>
        /// <returns></returns>
        ICollection CreateDataSource()
        {

         
            DataTable dt = new DataTable();            
            dt.Columns.Add(new DataColumn("WeatherTextField", typeof(String)));
            dt.Columns.Add(new DataColumn("WeatherValueField", typeof(String)));
            dt.Rows.Add(CreateRow("香港", "1", dt));
            dt.Rows.Add(CreateRow("澳門", "2", dt));
            dt.Rows.Add(CreateRow("哈爾濱", "17", dt));
            dt.Rows.Add(CreateRow("烏魯木齊", "28", dt));
            dt.Rows.Add(CreateRow("西寧", "56", dt));
            dt.Rows.Add(CreateRow("蘭州", "57", dt));
            dt.Rows.Add(CreateRow("呼和浩特", "69", dt));
            dt.Rows.Add(CreateRow("銀川", "78", dt));
            dt.Rows.Add(CreateRow("石家莊", "82", dt));
            dt.Rows.Add(CreateRow("太原", "84", dt));
            dt.Rows.Add(CreateRow("長春 ", "103", dt));
            dt.Rows.Add(CreateRow("瀋陽 ", "115", dt));
            dt.Rows.Add(CreateRow("北京 ", "125", dt));
            dt.Rows.Add(CreateRow("天津 ", "127", dt));
            dt.Rows.Add(CreateRow("濟南 ", "140", dt));
            dt.Rows.Add(CreateRow("拉薩 ", "150", dt));
            dt.Rows.Add(CreateRow("成都 ", "166", dt));
            dt.Rows.Add(CreateRow("昆明 ", "179", dt));
            dt.Rows.Add(CreateRow("西安 ", "186", dt));
            dt.Rows.Add(CreateRow("鄭州 ", "189", dt));
            dt.Rows.Add(CreateRow("武漢 ", "211", dt));
            dt.Rows.Add(CreateRow("重慶 ", "212", dt));
            dt.Rows.Add(CreateRow("長沙 ", "218", dt));
            dt.Rows.Add(CreateRow("貴陽 ", "227", dt));
            dt.Rows.Add(CreateRow("桂林 ", "232", dt));
            dt.Rows.Add(CreateRow("南京 ", "244", dt));
            dt.Rows.Add(CreateRow("合肥 ", "248", dt));
            dt.Rows.Add(CreateRow("上海 ", "252", dt));
            dt.Rows.Add(CreateRow("杭州 ", "255", dt));
            dt.Rows.Add(CreateRow("南昌 ", "264", dt));
            dt.Rows.Add(CreateRow("福州 ", "276", dt));
            dt.Rows.Add(CreateRow("臺北 ", "280", dt));
            dt.Rows.Add(CreateRow("廈門 ", "287", dt));
            dt.Rows.Add(CreateRow("廣州 ", "292", dt));
            dt.Rows.Add(CreateRow("南寧 ", "295", dt));
            dt.Rows.Add(CreateRow("深圳 ", "296", dt));
            dt.Rows.Add(CreateRow("海口 ", "303", dt));
            DataView dv = new DataView(dt);
            return dv;

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="Text"></param>
        /// <param name="Value"></param>
        /// <param name="dt"></param>
        /// <returns></returns>
        DataRow CreateRow(String Text, String Value, DataTable dt)
        {
            DataRow dr = dt.NewRow();
            dr[0] = Text;
            dr[1] = Value;
            return dr;

        }
        public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            //直接确认,否则打不开
            return true;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public string getHttpData(string url)
        {
            WebClient myWebClient = new WebClient();
            Stream myStream = myWebClient.OpenRead(url);
            WebHeaderCollection myHeader = myWebClient.ResponseHeaders;
            string myCharset = myHeader.Get("Content-Type");
            Match myMatch = Regex.Match(myCharset, "(?<=(charset=)).*$");
            StreamReader myReader = new StreamReader(myStream, Encoding.GetEncoding(myMatch.ToString()));
            return myReader.ReadToEnd();
        } 
posted @ 2011-06-16 19:17  ®Geovin Du Dream Park™  阅读(382)  评论(0编辑  收藏  举报