通过 WebClient 类 快速生成静态Html . 推荐
2008-02-17 11:37
197 查看
最近公司时间比较赶所以我就用这个方法给主页生成静态..
至于为什么生成静态.有什么好处..
这里我就不多说了,各位去搜索了解就成.
这个方法我应用在首页...
设置了服务器默认打开是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
{
/* 本机调试需要换成页面地址.例如:http://localhost:10118/Default.aspx */
GetRemoteHtmlCode(
"http://" + Request.Url.Host.ToString() + "/Default.aspx" );
}
catch( Exception ex )
{
throw new Exception( ex.Message +
"Url:" + "http://" + Request.Url.Host.ToString() + "/Default.aspx" );
}
至于为什么生成静态.有什么好处..
这里我就不多说了,各位去搜索了解就成.
这个方法我应用在首页...
设置了服务器默认打开是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
{
/* 本机调试需要换成页面地址.例如:http://localhost:10118/Default.aspx */
GetRemoteHtmlCode(
"http://" + Request.Url.Host.ToString() + "/Default.aspx" );
}
catch( Exception ex )
{
throw new Exception( ex.Message +
"Url:" + "http://" + Request.Url.Host.ToString() + "/Default.aspx" );
}
相关文章推荐
- java 生成静态html的一段代码 推荐
- sphinx帮助我通过rst生成静态html
- 通过模板生成静态html页面示例
- asp.net 通过模板生成静态html
- JAVA程序通过freemarker生成静态HTML页面
- 通用PHP动态生成静态HTML网页的代码
- 自动生成HTML工具 (part 2:webClient)
- 动态创建服务器控件,获取HTML输出(用于生成静态文件,简化页面,简化编程等)
- php动态网页实现页面静态化 通过在初次被访问时生成html文件保存起来,下次该PHP程序被访问时就直接找到以前被访问过的html页面
- ASP生成HTML静态文件之组件封装
- 推荐android studio一个插件 使用butterknife注解框架时可以快速生成注解
- [置顶] 【实战】如何通过html+css+mysql+php来快速的制作动态网页(以制作一个博客网站为列)
- fso asp生成静态html的代码
- springboot整合freemarker生成静态HTML页面
- 根据动态jsp页面生成静态HTML页面
- ASPX 生成html静态页面的问题
- 用php生成静态html页面
- Freemarker生成静态html示例
- PHP 批量生成静态html
- 静态缓存案例生成一个html页面