Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > C#/.NET入门教程

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

来源:中文源码网    浏览:193 次    日期:2024-04-30 15:56:00
【下载文档:  ASP.NET技巧:请求网址并解析返回的html.txt 】


ASP.NET技巧:请求网址并解析返回的html
  目的,把远程服务器传回的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(@"(?<=).*?(?=)", 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 }

相关内容