La forma más fácil de leer desde una URL a una cadena en .NET

109

Dada una URL en una cadena:

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

¿Cuál es la forma más fácil / concisa de descargar el contenido del archivo desde el servidor (señalado por la URL) en una cadena en C #?

La forma en que lo estoy haciendo en este momento es:

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

Eso es mucho código que esencialmente podría ser una línea:

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

Nota: no me preocupan las llamadas asincrónicas, esto no es código de producción.

rienda
fuente

Respuestas:

269
using(WebClient client = new WebClient()) {
   string s = client.DownloadString(url);
}
Marc Gravell
fuente
Otra de esas clases de utilidad que a menudo se pasan por alto, pero muy útil.
Marc Gravell
2
Tenga en cuenta que usted debe poner en un try catchbloque, así, en caso de que algo va mal
mikeyq6
@DanW sí, lo acabo de probar (con string s = client.DownloadString("/programming/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");), funciona absolutamente bien. Pase lo que pase: no es https el problema inmediato. ¿Estás seguro de que el sitio tiene un certificado válido?
Marc Gravell