2011年12月7日 星期三

使用 WebClient 把目標 URL 另存為 HTML


想要把某個網址存為HTML,我們可以使用WebClient。
第一個找到的方法:
string url = "http://www.google.com";
string fileName = "Download.html";

WebClient client = new WebClient();
Byte[] htmlData = client.DownloadData(url);
string html = Encoding.UTF8.GetString(htmlData);
StreamWriter sw = new StreamWriter(fileName);
sw.Write(html);
sw.Close();
編碼設定透過Encoding.UTF8.GetString方法來把byte型態的陣列轉換為UTF8編碼的String。 

另一種方法:

client.Encoding = Encoding.UTF8;
string html = client.DownloadString(url);
client.Encoding設定的是WebClient上傳和下載的String編碼設定。

後來發現還有最短的,不用再另外用StreamWriter存成html:

client.DownloadFile(url, fileName);
使用WebReguest、HttpWebResponse:
WebRequest request = WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string html = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
雖然比較繁複,不過相對的使用WebReguest、HttpWebResponse可以設定比較多參數(Ex:Timeout),也可以看到完整的流程:對一個URL送出request,把response存為HTML。
參考資料:
[MSDN]WebClient Constructor
[MSDN]WebRequest Class
The Will Will Web | 利用 WebClient 類別模擬 HTTP POST 表單送出的注意事項

回目錄
回首頁

沒有留言 :

張貼留言

Related Posts Plugin for WordPress, Blogger...