程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> ASP.NET獲取遠程網頁下載到本地文件

ASP.NET獲取遠程網頁下載到本地文件

編輯:.NET實例教程

通過ASP.NET生成靜態文件的文章網上有好多文章,而本站也有不少的相關文章教程,通常ASP.Net生成靜態文件的做法是使用文件流讀取模板內容,之後替換模板內容中相關關鍵字,再生成靜態文件。本文的做法另類一點,通過URL來生成靜態文件,下面來看下是如何實現吧。

創建一個TestWeb.ASPx文件,這個文件後台.cs的代碼做法步驟如下:

第1步:先引用如下命令空間

using System;

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

第2步:創建獲取遠程URL並生成文件的方法與文件夾不存在則自動建立方法

獲取遠程URL並生成文件的代碼:

 C# Code [http://www.xueit.com]
       /// <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);
            }
        }

以上代碼關鍵知識點,通過HttpWebRequest、HttpWebResponse請求獲取遠程URL數據,之後使用StreamReader、StreamWriter文件流讀寫數據寫入文件,注意還有編碼Encoding。

文件夾不存在則自動建立的代碼:

 C# Code [http://www.xueit.com]
        /// <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);
        }

下面我們看下如何調用生成文件。

在Page_Load中調用DownUrltoFile()方法,以獲取百度首頁生成靜態文件

 

 C# Code [http://www.xueit.com]
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved