2009-06-26 13 views
88

Dada una URL en una cadena:manera más fácil de leer desde una URL en una cadena en .NET

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

¿Cuál es la forma más fácil/más sucinta para descargar el contenido del archivo desde el servidor (señaló 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 un montón de código que esencialmente podría ser una línea:

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

Nota:

  • Sé que puedo envolverlo - Solo digo que probablemente haya una manera más fácil
  • No estoy preocupado por las llamadas asincrónicas, este no es el código de producción.

Respuesta

237
using(WebClient client = new WebClient()) { 
    string s = client.DownloadString(url); 
} 
+0

otra de esas clases de utilidad a menudo se pasan por alto - pero por lo ** ** útil. –

+22

Me gustaría nominar esta respuesta para el Salón de la fama de desbordamiento de pila en la categoría Mejores respuestas. –

+6

Gracias por este código conciso, y agrega que esto requiere el espacio de nombres System.Net. –

Cuestiones relacionadas