zoukankan      html  css  js  c++  java
  • 如何将ASP.NET页面保存为HTML文件

    以下为实现代码:
            /// <summary>
            /// 将文件保存为
            /// </summary>
            /// <param name="uri">请求的地址</param>
            /// <param name="queryString">查询字符串</param>
            /// <param name="targetFilePath">保存的文件路径</param>
            public static void SavePage(System.Uri uri, string queryString, string targetFilePath)
            {
                //用于保存文件的流
                System.IO.FileStream stream = null;

                //用于保存写入队对象
                System.IO.TextWriter writer = null;

                try
                {
                    //创建Http请求
                    HttpRequest request = new HttpRequest(uri.AbsolutePath, uri.AbsoluteUri, queryString);

                    //创建保存的文件流
                    stream = new System.IO.FileStream(targetFilePath, System.IO.FileMode.Create);

                    //创建文件写入对象
                    writer = new System.IO.StreamWriter(stream, System.Text.UTF8Encoding.UTF8);

                    //创建Http反馈
                    HttpResponse Response = new HttpResponse(writer);

                    //创建Http上下文
                    HttpContext context = new HttpContext(request, Response);

                    //添加Session
                    context.Items.Add("AspSession", HttpContext.Current.Session);

                    //创建页面分析器
                    System.Web.IHttpHandler handler = System.Web.UI.PageParser.GetCompiledPageInstance(uri.AbsolutePath,
                        HttpContext.Current.Server.MapPath(uri.AbsolutePath), context);

                    //执行请求
                    handler.ProcessRequest(context);

                    //写入信息
                    writer.Flush();

                    //关闭
                    writer.Close();
                }
                finally
                {
                    //关闭写入器
                    if (null != writer)
                    {
                        writer.Dispose();
                    }

                    //关闭流
                    if (null != stream)
                    {
                        //关闭
                        stream.Dispose();
                    }
                }
            }
    需要注意的是Session的传递,如果不传递Session,那么与Session相关的数据就无法获得了。

  • 相关阅读:
    技术科普好文收藏-持续更新
    linux命令--------tcpdump抓包和scp导出以及wireshark查看
    linux命令--------查询linux版本命令
    flash 问题记录
    硬件原理图英文缩写对照
    网上的TS流视频文件下载,解密,合成一个文件的python方法(转的别人大佬的,自己存一份~~)
    TS流
    python的文字和unicode/ascll 相互转换函数,和简单的加密解密。。。
    合唱队形算法问题记录(大佬代码是C++,但是主要是看解题思路)
    整数数据去重和排序的神秘技巧,适用于数据最大值不大的情况(比如数据是0-1000的随机数)
  • 原文地址:https://www.cnblogs.com/zengezenge/p/822954.html
Copyright © 2011-2022 走看看