使用webclient 生成静态页面

最近公司时间比较赶所以我就用这个方法给主页生成静态..
至于为什么生成静态.有什么好处..
这里我就不多说了,各位去搜索了解就成. 
这个方法我应用在首页...
设置了服务器默认打开是Default.html,第二个是Default.aspx..
所以在生成的时候即使有人访问也可以建立连接.
下面采用的是C#代码,但是思想很简单,无论什么语言都可以使用。
有什么问题可以提出来一起讨论吧....o(∩_∩)o...!
闲话少说吧.写代码吧
 
 
#region "using namespace"

using System;
using System.Web;
using System.Net;
using System.Text;
using System.IO;

 #endregion
 
// 创建WebClient实例提供向URI 标识的资源发送数据和从URI 标识的资源接收数据
 
WebClient myWebClient = new WebClient();
 
// 获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。
 
myWebClient.Credentials = CredentialCache.DefaultCredentials;
 
 // 从资源下载数据并返回字节数组。
 
byte [ ] pagedata = myWebClient.DownloadData( Url );
 
// 得到远程流
 
string myDataBuffer = Encoding.Default.GetString( pagedata );
 
// 生成Html静态文件的路径
 
string path = HttpContext.Current.Server.MapPath( "/" );
 
// 编码格式
 
Encoding code = Encoding.GetEncoding( "gb2312" );
 
// 生成的文件名称.可以是 shtml htm html
 
string htmlfilename = "Default.html";
 
// 实现文本流写入类
// 参数1 创建一个指定路径的空文件,
// 参数2 不追加数据
// 参数3 设置文件的指定编码
StreamWriter sw = new StreamWriter( path + htmlfilename , false , code );
 
// 写入文件内容
// 清理缓冲区
 sw.WriteLine( myDataBuffer );
 sw.Flush();
 
// 完整代码
         /// <summary>
         ///  生成HTML版本.
         /// </summary>
         /// <param name="Url">生成地址</param>
         public void GetRemoteHtmlCode( string Url )
        {
            WebClient myWebClient = new WebClient();

            myWebClient.Credentials = CredentialCache.DefaultCredentials;

             byte [ ] pagedata = myWebClient.DownloadData( Url );

             string myDataBuffer = Encoding.Default.GetString( pagedata );

             string path = HttpContext.Current.Server.MapPath( "/" );

            Encoding code = Encoding.GetEncoding( "gb2312" );

             string htmlfilename = "Default.html";

             try
            {
                StreamWriter sw = new StreamWriter(path + htmlfilename, false, code);

                sw.WriteLine(myDataBuffer);

                sw.Flush();

                Response.Write( "ok");
            }
             catch( Exception ex )
            {
                File.Delete( path + htmlfilename );
                HttpContext.Current.Response.Write( ex.Message );
                HttpContext.Current.Response.End();

                Response.Write( "no" );
            }
             finally
            {
                 if( sw != null )
                    sw.Close();
            }
        }
 
调用例子:
             try
            {
                 /* 本机调试需要换成页面地址.例如:[url]http://localhost:10118/Default.aspx[/url] */

                GetRemoteHtmlCode(  
                     "http://" + Request.Url.Host.ToString() + "/Default.aspx" );
            }
            catch( Exception ex )
            {
                throw new Exception( ex.Message +  
                    "Url:" + "http://" + Request.Url.Host.ToString() + "/Default.aspx" );
            }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值