用C#读取sina天气预报到wap页面(二)_.NET教程_编程技术_ASP.NET_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • ASP.NET

    当前位置:主页 > 网络编程 > ASP.NET >

    用C#读取sina天气预报到wap页面(二)_.NET教程_编程技术

    时间:2019-09-11|栏目:ASP.NET|点击:
  • sina|天气预报|页面  

    public class weather : System.Web.UI.MobileControls.MobilePage
     {
      protected System.Web.UI.MobileControls.Label Label1;
      protected System.Web.UI.MobileControls.Label Label2;
      protected System.Web.UI.MobileControls.SelectionList s_weather;
      protected System.Web.UI.MobileControls.Label l_date;
      protected System.Web.UI.MobileControls.Label l_city;
      protected System.Web.UI.MobileControls.Label l_wea;
      protected System.Web.UI.MobileControls.Label l_sky;
      protected System.Web.UI.MobileControls.Label l_w1;
      protected System.Web.UI.MobileControls.Label l_w2;
      protected System.Web.UI.MobileControls.Label l_w3;
      protected System.Web.UI.MobileControls.Link Link1;
      protected System.Web.UI.MobileControls.Command Command1;
      protected System.Web.UI.MobileControls.Label Label3;
      protected System.Web.UI.MobileControls.Form Form1;

      private void Page_Load(object sender, System.EventArgs e)
      {
       // 在此处放置用户代码以初始化页面
       if (!Page.IsPostBack)
       {
        string city = "深圳";
        int start,stop;
        string weather1,weather2,wea;
        string wea_city = weather_city(city);
        wea_city = wea_city.Replace(" ","");

        start = wea_city.IndexOf("<b>",0,wea_city.Length);
        stop = wea_city.IndexOf("</b>", start);
        weather1 = wea_city.Substring(start, stop-start).Trim() + "          ";
        weather1 = weather1.Substring(3,8).Trim();
       
        start = wea_city.IndexOf("<tdstyle=/"font-size:40px;font-family:TimesNewRoman;font-weight:bold;/">",0,wea_city.Length);
        stop = wea_city.IndexOf("℃",start) + 40;
        weather2 = wea_city.Substring(start, stop-start);
        weather2 = weather2.Substring(stop-start-42,40).Trim();
        weather2 = weather2.Replace("/t","");

        start = wea_city.IndexOf("<fontcolor=#183888><b>", 0, wea_city.Length);
        stop = wea_city.IndexOf("</b></font>",start);
        wea = wea_city.Substring(start,stop-start);
        wea = wea.Substring(22,wea.Length-22) + "kbrk";
        wea = wea.Replace("/t", "");
        wea = wea.Replace(">", "k");
        wea = wea.Replace("<", "k");
        wea = wea.Replace("kbrk", "k");
        string [] wall = null;
        char[] seperator = {'k'};
        wall = wea.Split(seperator);

        //////////////////////////////////////
        l_city.Text = "[城市]:" + city;
        l_wea.Text = "[天气]:" + weather1;
        l_sky.Text = "[温度]:" + weather2;
        ///////
        l_date.Text = wall[0];
        l_w1.Text = wall[1];
        l_w2.Text = wall[2];
        l_w3.Text = wall[3];
       }
      }

      #region Web 窗体设计器生成的代码
      override protected void OnInit(EventArgs e)
      {
       //
       // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
       //
       InitializeComponent();
       base.OnInit(e);
      }

      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {   
       this.Command1.Click += new System.EventHandler(this.Command1_Click);
       this.Load += new System.EventHandler(this.Page_Load);

      }
      #endregion


      private void Command1_Click(object sender, System.EventArgs e)
      {
       string city = s_weather.Selection.Value.Trim();
       int start,stop;
       string weather1,weather2,wea;
       string wea_city = weather_city(city);
       wea_city = wea_city.Replace(" ","");

       start = wea_city.IndexOf("<b>",0,wea_city.Length);
       stop = wea_city.IndexOf("</b>", start);
       weather1 = wea_city.Substring(start, stop-start).Trim() + "          ";
       weather1 = weather1.Substring(3,8).Trim();
       
       start = wea_city.IndexOf("<tdstyle=/"font-size:40px;font-family:TimesNewRoman;font-weight:bold;/">",0,wea_city.Length);
       stop = wea_city.IndexOf("℃",start) + 40;
       weather2 = wea_city.Substring(start, stop-start);
       weather2 = weather2.Substring(stop-start-42,40).Trim();
       weather2 = weather2.Replace("/t","");

       start = wea_city.IndexOf("<fontcolor=#183888><b>", 0, wea_city.Length);
       stop = wea_city.IndexOf("</b></font>",start);
       wea = wea_city.Substring(start,stop-start);
       wea = wea.Substring(22,wea.Length-22) + "kbrk";
       wea = wea.Replace("/t", "");
       wea = wea.Replace(">", "k");
       wea = wea.Replace("<", "k");
       wea = wea.Replace("kbrk", "k");
       string [] wall = null;
       char[] seperator = {'k'};
       wall = wea.Split(seperator);

       //////////////////////////////////////
       l_city.Text = "[城市]:" + city;
       l_wea.Text = "[天气]:" + weather1;
       l_sky.Text = "[温度]:" + weather2;
       ///////
       l_date.Text = wall[0];
       l_w1.Text = wall[1];
       l_w2.Text = wall[2];
       l_w3.Text = wall[3];  
      }

      public string weather_city(string city)
      {
       string temp = null;
       try
       {
        string strURL = "http://weather.news.sina.com.cn/cgi-bin/figureWeather/search.cgi";
        HttpWebRequest request;
        request = (HttpWebRequest)WebRequest.Create(strURL);
        request.Method="POST"; //Post请求方式
        request.ContentType="application/x-www-form-urlencoded"; //内容类型
        string paraUrlCoded = System.Web.HttpUtility.UrlEncode("city"); //参数经过URL编码
        paraUrlCoded = paraUrlCoded + "=" + System.Web.HttpUtility.UrlEncode(city, System.Text.Encoding.GetEncoding("utf-8"));
        byte[] payload;
        payload = System.Text.Encoding.GetEncoding("utf-8").GetBytes(paraUrlCoded); //将URL编码后的字符串转化为字节
        request.ContentLength = payload.Length; //设置请求的ContentLength
        Stream writer = request.GetRequestStream(); //获得请求流
        writer.Write(payload,0,payload.Length); //将请求参数写入流
        writer.Close(); //关闭请求流
        HttpWebResponse response;
        response = (HttpWebResponse)request.GetResponse(); //获得响应流
        Stream s;
        s = response.GetResponseStream();
        StreamReader objReader = new StreamReader(s,System.Text.Encoding.GetEncoding("utf-8"));
        string HTML = "";
        string sLine = "";
        int i = 0;
        while (sLine!=null)
        {
         i++;
         sLine = objReader.ReadLine();
         if (sLine!=null)
          HTML += sLine;
        }
        HTML = HTML.Replace("<","<");
        HTML = HTML.Replace(">",">");
        int start,stop;
        start = HTML.IndexOf("<img src=/"http://image2.sina.com.cn/dy/weather/images/figure/",0,HTML.Length);
        stop = HTML.IndexOf("<td background=http://image2.sina.com.cn/dy/weather/images",start);
        temp = HTML.Substring(start, stop - start);
       }
       catch (Exception x)
       {
       }
       return temp;
      }
     }




    上一篇:用C#读取sina天气预报到wap页面(一)_.NET教程_编程技术

    栏    目:ASP.NET

    下一篇:C#冒泡算法!_.NET教程_编程技术

    本文标题:用C#读取sina天气预报到wap页面(二)_.NET教程_编程技术

    本文地址:http://www.jh-floor.com/wangluobiancheng/ASP_NET/50060.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号