当前位置: 代码迷 >> ASP.NET >> 求好手改造这几句HttpContext代码
  详细解决方案

求好手改造这几句HttpContext代码

热度:8513   发布时间:2013-02-25 00:00:00.0
求高手改造这几句HttpContext代码
/// <summary>
///哪个页面想静态化,就继承这个类
/// </summary>
public class HtmlPage : BasePage
{
  // <summary>
  /// 获取物理路径,判断文件夹中有没有存在这个文件
  /// 不存在的话,就会调用FilterStream类进行创建,并写入内容
  /// 存在的话,就直接显示页面
  /// </summary>
  public override void ProcessRequest(HttpContext context)
  {
  HttpRequest req = context.Request;
  HttpResponse resp = context.Response;

  string htmlPage = UrlMapping.AspxToHtml(req.RawUrl);
  string htmlFile = context.Server.MapPath(htmlPage);

  if (File.Exists(htmlFile))
  {
  resp.Redirect(htmlPage);
  return;
  }

  // Html 页面不存在
  resp.Filter = new FilterStream(resp.Filter, htmlFile);
  base.ProcessRequest(context);
  }
}
--------------------------------------------------------------
以上代码是原本是哪个页面想静态化,就继承这个类,只要从浏览器打开那个页面的网址就创建生成静态页面了。
可我现在不想从浏览器中输入网址,而是想实现从页面输入框中提交某个网址,就创建相应的静态页面,请问如何改这段代码呢,这样我想就能用循环一次性生成很多的静态页面,而不用一个个的生成了。请大家指点一下,我看的这个源代码教程是这个页面上的http://www.cnblogs.com/tonycall/archive/2009/07/18/1526079,不知道怎么样哦
我自己用WebRequest改造了一下,没改成功,以下是我改造的代码

自己还是没搞定,请大家帮我用WebRequest改造一下啊,下面是我自己改的,没改出来
protected void Button1_Click(object sender, EventArgs e)
  {
  HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(TextBox1.Text);
  req.Method = "POST";
  req.ContentType = "application/x-www-form-urlencoded";

  string htmlPage = UrlMapping.AspxToHtml(req.RequestUri.ToString());
  string htmlFile = Server.MapPath(htmlPage);

  if (File.Exists(htmlFile))
  {
  return;
  }
  // Html 页面不存在
  WebResponse wr=req.GetResponse();
  这里不会了,请大家帮我弄弄应该怎么弄啊????
  } 


------解决方案--------------------------------------------------------
C# code
WebRequest req = HttpWebRequest.Create("http://www.baidu.com");            req.Method = "GET";            req.Credentials = CredentialCache.DefaultCredentials;            req.ContentType = "application/x-www-form-urlencoded";            HttpWebResponse wr = (HttpWebResponse)req.GetResponse();            using (Stream stream = wr.GetResponseStream())            {                using (StreamReader reader = new StreamReader(stream, Encoding.Default))                {                    string s1 = reader.ReadToEnd();                                        wr.Close();                    Response.Write(s1);   //这里把s1写入到你新建的html里面就行了                    Response.End();                }            }