Câu trả lời:
Bạn có thể tải xuống các tệp bằng lớp WebClient :
using System.Net;
using (WebClient client = new WebClient ()) // WebClient class inherits IDisposable
{
client.DownloadFile("http://yoursite.com/page.html", @"C:\localfile.html");
// Or you can get the file content without saving it
string htmlCode = client.DownloadString("http://yoursite.com/page.html");
}
về cơ bản:
using System.Net;
using System.Net.Http; // in LINQPad, also add a reference to System.Net.Http.dll
WebRequest req = HttpWebRequest.Create("http://google.com");
req.Method = "GET";
string source;
using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
{
source = reader.ReadToEnd();
}
Console.WriteLine(source);
Câu trả lời mới nhất, gần đây nhất, cập nhật
Bài đăng này thực sự cũ (tôi đã trả lời được 7 năm rồi), vì vậy không ai trong số các câu trả lời khác sử dụng cách mới và được đề xuất, đó là HttpClient
lớp học.
HttpClient
được coi là API mới và nó sẽ thay thế các API cũ ( WebClient
và WebRequest
)
string url = "page url";
HttpClient client = new HttpClient();
using (HttpResponseMessage response = client.GetAsync(url).Result)
{
using (HttpContent content = response.Content)
{
string result = content.ReadAsStringAsync().Result;
}
}
để biết thêm thông tin về cách sử dụng HttpClient
lớp (đặc biệt là trong trường hợp không đồng bộ), bạn có thể tham khảo câu hỏi này
Bạn có thể lấy nó bằng:
var html = new System.Net.WebClient().DownloadString(siteUrl)
Dispose
sự WebClient
?
@cms là cách gần đây hơn, được đề xuất trong trang web MS, nhưng tôi đã gặp một vấn đề khó giải quyết, với cả hai phương pháp được đăng ở đây, bây giờ tôi đăng giải pháp cho tất cả!
vấn đề:
nếu bạn sử dụng url như thế này: www.somesite.it/?p=1500
trong một số trường hợp, bạn gặp lỗi máy chủ nội bộ (500), mặc dù trong trình duyệt web, điều này www.somesite.it/?p=1500
hoàn toàn hoạt động.
giải pháp: bạn phải di chuyển các tham số, mã làm việc là:
using System.Net;
//...
using (WebClient client = new WebClient ())
{
client.QueryString.Add("p", "1500"); //add parameters
string htmlCode = client.DownloadString("www.somesite.it");
//...
}