目的,把远程服务器传回的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; } (编辑:焦作站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|