Chia sẻ

[C#] Tải file từ hosting sử dụng lớp System.Net.WebClient
[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 !!!


Chia sẻ

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *