目的,把远程服务器传回的Html,解析到类里เลดี้,为GridView等提供数据源
1 、向远程服务器โพสต์数据
public int PostData (URL สตริง, ข้อมูลสตริง, ข้อมูลสตริงออก)
{
ข้อมูล = "";
CookieContainer cc = ใหม่ CookieContainer();
คำขอ HttpWebRequest = WebRequest.Create (url) เป็น HttpWebRequest;
request.CookieContainer = ซีซี;
request.Method = "โพสต์";
request.ContentType = "application/x-www-form-urlencoded";
สตรีม requestStream = request.GetRequestStream();
ไบต์ [] byteArray = การเข้ารหัส UTF8.GetBytes (ข้อมูล);
requestStream.Write (byteArray, 0, byteArray.Length);
requestStream.ปิด();
การตอบสนอง HttpWebResponse = request.GetResponse() เป็น HttpWebResponse;
Uri responseUri = response.ResponseUri;
สตรีมreceStream = response.GetResponseStream();
การเข้ารหัส เข้ารหัส = System.Text.Encoding.GetEncoding("utf-8");
StreamReader readStream = StreamReader ใหม่ (รับสตรีม, เข้ารหัส);
ผลลัพธ์สตริง = readStream.ReadToEnd();
ข้อมูล = ผลลัพธ์;
กลับ 0;
}2、解析返回的html,มี省略
ClassInfo สาธารณะ [] GetClass (สตริง html)
{
ArrayList ar = ใหม่ ArrayList();
ArrayList arr = ใหม่ ArrayList();
ตารางสตริง = "";
Regex regtable = Regex ใหม่(@"(?<=<table.*>).*?(?=</table>)", RegexOptions.Singleline);
จับคู่ ma = regtable.Match(html);
ในขณะที่ (ma.Success)
-
ถ้า (ma.Value.Trim() != "")
-
arr.Add(HttpUtility.HtmlDecode(ma.Value));
-
แม่ = ma.NextMatch();
-
สำหรับ (int i = 0; i < arr.Count; i++)
-
ตาราง = arr[i].ToString() + ตาราง;
-
Regex reg = Regex ใหม่(@"(?<=<.*?>).*?(?=<.*?>)", RegexOptions.Singleline);
จับคู่ m = reg.Match (ตาราง);
ในขณะที่ (m.ความสำเร็จ)
-
ถ้า (m.Value.Trim() != "")
{
ar.Add(HttpUtility.HtmlDecode(m.Value));
-
ม. = ม.NextMatch();
-
ClassInfo[] ci = ClassInfo ใหม่[classno];
สำหรับ (int i = 0; i < classno; i++)
-
ci[i] = 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();
-
กลับCI;
-
3、定义ClassInfo类(课程类),用CodeSmith生成
ClassInfo คลาสสาธารณะ
-
ตัวแปรสมาชิก#ภูมิภาค ตัวแปรสมาชิก
สตริงที่ได้รับการป้องกัน _loginDate;
สตริงที่ได้รับการป้องกัน _logoutDate;
สตริงที่ได้รับการป้องกัน _registerDate;
สตริงที่ได้รับการป้องกัน _useMin;
สตริงที่ได้รับการป้องกัน _className;
สตริงที่ได้รับการป้องกัน _classType;
สตริงที่ได้รับการป้องกัน _percent;
// สตริงที่มีการป้องกัน _nouse;
#endregion
Constructors#region Constructors
public ClassInfo() { }
public ClassInfo (สตริงล็อกอินDate, สตริง logoutDate, สตริง registerDate, สตริง useMin, สตริง className, สตริง classType, สตริงเปอร์เซ็นต์)
-
this._loginDate = วันที่เข้าสู่ระบบ;
this._logoutDate = วันที่ออกจากระบบ;
this._registerDate = registerDate;
this._useMin = useMin;
this._className = ชื่อคลาส;
นี้._classType = classType;
this._percent = เปอร์เซ็นต์;
}
#
คุณสมบัติสาธารณะของภูมิภาค#คุณสมบัติสาธารณะของภูมิภาค
// สตริงสาธารณะ NoUse
-
// รับ {กลับมา _nouse;}
// set{ _nouse= ค่า;}
-
สตริงสาธารณะ LoginDate
-
รับ { กลับ _loginDate; -
ตั้งค่า { _loginDate = ค่า; -
}
สตริงสาธารณะ LogoutDate
-
รับ { กลับ _logoutDate; -
ตั้งค่า { _logoutDate = ค่า; -
}
สตริงสาธารณะ RegisterDate
-
รับ { กลับ _registerDate; -
ตั้ง { _registerDate = ค่า; -
}
สตริงสาธารณะ UseMin
-
รับ { กลับ _useMin; -
ตั้งค่า { _useMin = ค่า; -
}
ClassName สตริงสาธารณะ
-
รับ { กลับ _className; -
ชุด
-
ถ้า (ค่า != null && value.Length > 50)
โยน ArgumentOutOfRangeException ใหม่ ("ค่าไม่ถูกต้องสำหรับ ClassName", value, value.ToString());
_className = ค่า;
-
}
ClassType สตริงสาธารณะ
-
รับ { กลับ _classType; -
ชุด
-
ถ้า (ค่า != null && value.Length > 50)
โยน ArgumentOutOfRangeException ใหม่ ("ค่าไม่ถูกต้องสำหรับ ClassType", value, value.ToString());
_classType = ค่า;
-
}
เปอร์เซ็นต์สตริงสาธารณะ
-
รับ { ผลตอบแทน _percent; -
ชุด
-
ถ้า (ค่า != null && value.Length > 50)
โยน ArgumentOutOfRangeException ใหม่ ("ค่าเปอร์เซ็นต์ไม่ถูกต้อง", ค่า, value.ToString ());
_เปอร์เซ็นต์ = ค่า;
-
}
#endregion
}