今天图老师小编要向大家分享个请求网址并解析返回的html教程,过程简单易学,相信聪明的你一定能轻松get!
【 tulaoshi.com - Web开发 】
  目的,把远程服务器传回的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();
}
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)
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() { }
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)          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
来源:http://www.tulaoshi.com/n/20160219/1609783.html
看过《请求网址并解析返回的html》的人还看了以下文章 更多>>