想要把某個網址存為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 表單送出的注意事項
回目錄
回首頁
沒有留言 :
張貼留言