求高手改造这几句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.html,不知道怎么样哦
我自己用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();
}
}