using System;
class StaticPage
{
/// <summary>
/// 採用直接輸出法產生靜態頁
/// </summary>
public static void GetByRedirectOut()
{
// 通過Sql語句查詢資料庫中所有使用者的ID,用於做URL中傳遞的標識
string sql = "select UserID from UserInfo";
SqlDataReader dr = SqlHelper.Instance.ExecuteReader(sql, CommandType.Text);
// 定義將來要訪問的動態網頁的路徑,開發檔案系統類別的網站時會帶有連接埠
string url = "http://localhost:1856/Web/ShowUser.aspx?uid=";
string userId = string.Empty;
// HttpWebRequest用來與伺服器互動
HttpWebRequest request = null;
// 伺服器響應的相關網詐
HttpWebResponse response = null;
Stream stream = null;
StreamReader reader = null;
while (dr.Read())
{
userId = dr[0].ToString();
// 類比用戶端請求,產生HttpWebRequest類執行個體
request = (HttpWebRequest)WebRequest.Create(url + userId);
// 擷取來自伺服器的響應
response = (HttpWebResponse)request.GetResponse();
stream = respose.GetResponseStream();
reader = new SteamReader(stream);
//一次性讀取整個響應的內容
string result = reader.ReadToEnd();
reader.Close(); // 關閉字元流對象
response.Close(); // 關閉HttpWebResponse對象
// 產生的靜態頁的儲存路徑
string savePathForStaticPage = Server.MapPath("~/StaticPage/UserInfo" + userId + ".html");
StreamWriter writer = new StreamWriter(savePathForStaticPage, false, Encoding.Utf - 8);
writer.Write(result);
writer.Close();
}
dr.Close();
lblStatus.Text = "產生所有靜態頁面成功!";
}
/// <summary>
/// 採用模板替換法產生靜態頁
/// </summary>
public static void GetByTemplate()
{
}
}