[C#] Tải file từ hosting sử dụng lớp System.Net.WebClient
Nội dung
Giới thiệu
Có nhiều cách để tải toàn bộ nội dung của URL xuống máy tính, trong đó cách dễ dàng nhất là sử dụng lớp System.Net.WebClient. Trong bài này, csharpcanban.com sẽ hướng dẫn các bạn sử dụng lớp System.Net.WebClient để tải file về máy bằng ngôn ngữ c#.
Hướng dẫn sử dụng
Tải URL về máy tính bằng lớp WebClient
using System.Net;
WebClient wc = new WebClient();
wc.DownloadFile("http://www.example.com/somefile.txt", @"c:tempsomefile.txt");
Lưu nội dung URL vào một chuỗi dạng string
using System.Net;
WebClient wc = new WebClient();
string somestring = wc.DownloadString("http://www.example.com/somefile.txt");
Xử lý ngoại lệ, ta sử dụng đoạn mã sau đây
using System.Net;
string somestring;
try
{
WebClient wc = new WebClient();
somestring = wc.DownloadString("http://www.example.com/somefile.txt");
}
catch (WebException we)
{
// Hiển thị hộp thoại báo ngoại lệ
MessageBox.Show(we.ToString());
}
Sử dụng System.Net.WebClient với biến Timeout
Mặc định Lớp WebClient không có thời gian chờ, nhưng chúng ta có thể ghi đè biến Timeout theo ý muốn như sau:
using System.Net;
public class WebClientWithTimeout:WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest wr = base.GetWebRequest(address);
wr.Timeout = 5000; // thời gian thoát đo bằng milliseconds (ms)
return wr;
}
}
...
string somestring;
try
{
WebClient wc = new WebClientWithTimeout();
somestring = wc.DownloadString("http://www.example.com/somefile.txt");
}
catch (WebException we)
{
// Hiển thị hộp thoại báo ngoại lệ
MessageBox.Show(we.ToString());
}
Lỗi máy chủ 500 (Lỗi máy chủ nội bộ)
Máy chủ web có báo lỗi 500 (Lỗi máy chủ ), khi đó ta cần bổ sung tác nhân người dùng “user-agent” như sau:
...
WebClient wc = new WebClient();
wc.Headers.Add ("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)");
somestring = wc.DownloadString("http://www.example.com/somefile.txt");
...
Chúc các bạn thành công !!!