Cách dễ nhất để đọc từ một URL thành một chuỗi trong .NET


109

Cho một URL trong một chuỗi:

http://www.example.com/test.xml

Cách dễ nhất / ngắn gọn nhất để tải xuống nội dung của tệp từ máy chủ (được trỏ tới bởi url) thành một chuỗi trong C # là gì?

Cách tôi đang làm vào lúc này là:

WebRequest request = WebRequest.Create("http://www.example.com/test.xml");
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();

Đó là rất nhiều mã về cơ bản có thể là một dòng:

string responseFromServer = ????.GetStringFromUrl("http://www.example.com/test.xml");

Lưu ý: Tôi không lo lắng về các cuộc gọi không đồng bộ - đây không phải là mã sản xuất.

Câu trả lời:


269
using(WebClient client = new WebClient()) {
   string s = client.DownloadString(url);
}

Một trong những lớp tiện ích thường bị bỏ qua - nhưng rất hữu ích.
Marc Gravell

2
Hãy nhớ rằng bạn nên đặt nó trong một try catchkhối là tốt, trong trường hợp một cái gì đó đi xiên
mikeyq6

@DanW vâng, nó có, tôi vừa thử nghiệm nó (với string s = client.DownloadString("/programming/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");) - hoạt động hoàn toàn tốt. Bất cứ điều gì đang xảy ra: https không phải là vấn đề trước mắt. Bạn có chắc trang web có chứng chỉ hợp lệ không?
Marc Gravell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.