Самый простой способ прочитать URL-адрес в строку в .NET


109

Учитывая URL-адрес в строке:

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

Какой самый простой / краткий способ загрузить содержимое файла с сервера (на который указывает URL-адрес) в строку на C #?

Сейчас я делаю это так:

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();

Это много кода, который по сути может состоять из одной строки:

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

Примечание: меня не беспокоят асинхронные вызовы - это не производственный код.

Ответы:


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

Еще один из тех служебных классов, о которых часто забывают, но очень полезный.
Марк Гравелл

2
Имейте в виду, что вы также должны поместить его в try catchблок, на случай, если что-то пойдет не так
mikeyq6

@DanW да, я только что протестировал (с string s = client.DownloadString("/programming/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");) - работает абсолютно нормально. Что бы ни происходило: непосредственная проблема заключается не в https. Вы уверены, что у сайта есть действующий сертификат?
Марк Грейвелл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.