62,074
社区成员
发帖
与我相关
我的任务
分享
protected void Page_Load(object sender, EventArgs e)
{
//调用方法
this.DownUrltoFile("http://www.baidu.com", "html/baidu.htm", "GB2312");
}
/// <summary>
/// 生成网页文件
/// </summary>
/// <param name="url">远程URL</param>
/// <param name="filename">生成文件名路径</param>
/// <param name="pagecode">目标URL页面编码</param>
protected void DownUrltoFile(string url, string filename, string pagecode)
{
try
{
//编码
Encoding encode = Encoding.GetEncoding(pagecode);
//请求URL
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
//设置超时(10秒)
req.Timeout = 10000; this.NotFolderIsCreate(filename);
//获取Response
HttpWebResponse rep = (HttpWebResponse)req.GetResponse();
//创建StreamReader与StreamWriter文件流对象
StreamReader sr = new StreamReader(rep.GetResponseStream(),encode);
StreamWriter sw = new StreamWriter(Server.MapPath(filename), false,encode);
//写入内容
sw.Write(sr.ReadToEnd());
//清理当前缓存区,并将缓存写入文件
sw.Flush();
//释放相关对象资源
sw.Close();
sw.Dispose();
sr.Close();
sr.Dispose();
// Response.Write("生成文件" filename "成功");
} catch (Exception ex) {
//Response.Write("生成文件" filename "失败,原因:" ex.Message);
Response.Write("错误信息:"+ex.Message);
}
}
/// <summary>
/// 文件夹不存在则创建
/// </summary>
/// <param name="filename">文件名所在路径</param>
protected void NotFolderIsCreate(string filename)
{
string fileAtDir = Server.MapPath(Path.GetDirectoryName(filename));
if (!Directory.Exists(fileAtDir)) Directory.CreateDirectory(fileAtDir);
}