广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    请求网址并解析返回的html

    2018-04-13 09:17:46 次阅读 稿源:互联网
    广告

      目的,把远程服务器传回的Html,解析到类里面,为GridView等提供数据源
      1 、向远程服务器Post数据
      public int PostData(string url, string data, out string info)
              {

                  info = "";
                  CookieContainer cc = new CookieContainer();
                  HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                  request.CookieContainer = cc;
                  request.Method = "POST";
                  request.ContentType = "application/x-www-form-urlencoded";
                  Stream requestStream = request.GetRequestStream();
                  byte[] byteArray = Encoding.UTF8.GetBytes(data);
                  requestStream.Write(byteArray, 0, byteArray.Length);
                  requestStream.Close();
                  HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                  Uri responseUri = response.ResponseUri;
                  Stream receiveStream = response.GetResponseStream();
                  Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
                  StreamReader readStream = new StreamReader(receiveStream, encode);
                  string result = readStream.ReadToEnd();
                  info = result;
                  return 0;

              }2、解析返回的html,有省略
       public ClassInfo[] GetClass(string html)
              {

                  ArrayList ar = new ArrayList();
                  ArrayList arr = new ArrayList();
                  string table = "";
                  Regex regtable = new Regex(@"(?<=<table.*>).*?(?=</table>)", RegexOptions.Singleline);
                  Match ma = regtable.Match(html);
                  while (ma.Success)
                  {
                      if (ma.Value.Trim() != "")
                      {
                          arr.Add(HttpUtility.HtmlDecode(ma.Value));
                      }
                      ma = ma.NextMatch();
                  }
                  for (int i = 0; i < arr.Count; i++)
                  {
                      table = arr[i].ToString() + table;
                  }

      
                  Regex reg = new Regex(@"(?<=<.*?>).*?(?=<.*?>)", RegexOptions.Singleline);
                  Match m = reg.Match(table);

      
                  while (m.Success)
                  {
                      if (m.Value.Trim() != "")
                      {

                          ar.Add(HttpUtility.HtmlDecode(m.Value));
                      }
                      m = m.NextMatch();
                  }

      
                 ClassInfo[] ci = new ClassInfo[classno];
                  for (int i = 0; i < classno; i++)
                  {
                      ci[i] = new ClassInfo();
                      ci[i].RegisterDate = (ar[i * 8 + 0]).ToString();

                      ci[i].LoginDate = (ar[i * 8 + 1]).ToString();
                      ci[i].LogoutDate = (ar[i * 8 + 2]).ToString();
                      ci[i].UseMin = ar[i * 8 + 3].ToString();
                      ci[i].ClassName = ar[i * 8 + 5].ToString();
                      ci[i].ClassType = ar[i * 8 + 6].ToString();
                      ci[i].Percent = ar[i * 8 + 7].ToString();

                  }

       

                  return ci;

      
              }
      3、定义ClassInfo类(课程类),用CodeSmith生成
       public class ClassInfo
          {
              Member Variables#region Member Variables

      
              protected string _loginDate;
              protected string _LogoutDate;
              protected string _registerDate;
              protected string _useMin;
              protected string _className;
              protected string _classType;
              protected string _percent;
              //protected string _nouse;
              #endregion

              Constructors#region Constructors

              public ClassInfo() { }

              public ClassInfo(string loginDate, string LogoutDate, string registerDate, string useMin, string className, string classType, string percent)
              {
                  this._loginDate = loginDate;
                  this._LogoutDate = LogoutDate;
                  this._registerDate = registerDate;
                  this._useMin = useMin;
                  this._className = className;
                  this._classType = classType;
                  this._percent = percent;
              }

              #endregion

              Public Properties#region Public Properties
              //        public string NoUse
              //        {
              //            get{return _nouse;}
              //            set{ _nouse= value;}
              //        }

       

              public string LoginDate
              {
                  get { return _loginDate; }
                  set { _loginDate = value; }
              }

              public string LogoutDate
              {
                  get { return _LogoutDate; }
                  set { _LogoutDate = value; }
              }

              public string RegisterDate
              {
                  get { return _registerDate; }
                  set { _registerDate = value; }
              }

              public string UseMin
              {
                  get { return _useMin; }
                  set { _useMin = value; }
              }

              public string ClassName
              {
                  get { return _className; }
                  set
                  {
                      if (value != null && value.Length > 50)
                          throw new ArgumentOutOfRangeException("Invalid value for ClassName", value, value.ToString());
                      _className = value;
                  }
              }

              public string ClassType
              {
                  get { return _classType; }
                  set
                  {
                      if (value != null && value.Length > 50)
                          throw new ArgumentOutOfRangeException("Invalid value for ClassType", value, value.ToString());
                      _classType = value;
                  }
              }

              public string Percent
              {
                  get { return _percent; }
                  set
                  {
                      if (value != null && value.Length > 50)
                          throw new ArgumentOutOfRangeException("Invalid value for Percent", value, value.ToString());
                      _percent = value;
                  }
              }

              #endregion
          }

      http://bluewater.cnblogs.com/archive/2006/06/19/429720.html

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告