源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ASP.NET技巧:请求网址并解析返回的html

  • 时间:2022-04-21 23:40 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ASP.NET技巧:请求网址并解析返回的html
  目的,把远程服务器传回的Html,解析到类里面,为GridView等提供数据源 [b]  1 、向远程服务器Post数据[/b] 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;         }   [b]2、解析返回的html,有省略[/b] 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;         } [b]  3、定义ClassInfo类(课程类),用CodeSmith生成[/b]  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     }  
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部