2009-09-03 90 views
0

給出了一個網址我如何使用asp.net將網頁下載到我的硬盤上通過asp.net下載網頁

如果您在ie6中打開url http://www.cnn.com並使用文件另存爲,它會將html頁面下載到您的系統。

我如何通過asp.net

+0

只是HTML或HTML和圖像? – 2009-09-03 04:23:55

回答

0

使用System.Net.WebClient實現這一目標。

WebClient client = new WebClient(); 

Stream data = client.OpenRead ("http://www.myurl.com"); 
StreamReader reader = new StreamReader(data); 
string s = reader.ReadToEnd(); 
Console.WriteLine (s); 
data.Close(); 
reader.Close(); 
+3

你真的應該使用使用。 :) – ChaosPandion 2009-09-03 04:27:23

1

這應該做的工作。但是如果您是在ASP.NET頁面中執行此操作,則需要考慮安全性。

public static void GetFromHttp(string URL, string FileName) 
     { 
      HttpWebRequest HttpWReq = CreateWebRequest(URL); 

      HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse(); 
      Stream readStream = HttpWResp.GetResponseStream(); 
      Byte[] read = new Byte[256]; 

      Stream fs = new FileStream(FileName, FileMode.Create, FileAccess.Write); 

      int count = readStream.Read(read, 0 , 256); 
      while (count > 0) 
      { 
       fs.Write(read, 0, count); 
       count = readStream.Read(read, 0, 256); 
      } 
      readStream.Close(); 

      HttpWResp.Close(); 
      fs.Flush(); 
      fs.Close(); 
     } 
0
String url = "http://www.cnn.com"; 
var hwr = (HttpWebRequest)HttpWebRequest.Create(url); 
using (var r = hwr.GetResponse()) 
using (var s = new StreamReader(r.GetResponseStream())) 
{ 
    Console.Write(s.ReadToEnd()); 
} 
+0

這裏我只有html,我正在尋找一個htm文件夾,它將有所有的url的圖像 – vamsivanka 2009-09-08 02:19:00

2

正如womp說,使用Web客戶端在我看來簡單。這裏是我更簡單的例子:

string result; 
using (WebClient client = new WebClient()) { 
    result = client.DownloadString(address); 
} 
// Just save the result to a file or do what you want.. 
+0

我知道他們必須已經做到了這一點! +1 – ChaosPandion 2009-09-03 05:37:31

+0

我可以做到這一點,下載該頁面的源代碼。 使用客戶端作爲新的WebClient() client.DownloadFile(「http://www.cnn.com」,「c:\ test.html」) 結束使用 但我缺少的是圖像下載。從上面我得到的只是圖像的位置而不是真實的圖像本身。 – vamsivanka 2009-09-08 02:17:31