2009-06-26 24 views
88

Biorąc URL w ciąg:najłatwiejszy sposób odczytać z adresu URL na ciąg w .NET

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

Co jest najprostszym/najbardziej zwięzły sposób, aby pobrać zawartość pliku z serwera (wskazywanego przez adres URL) w ciągu znaków w C#?

Tak jak ja to robię w tej chwili jest:

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

To dużo kodu, który mógłby w zasadzie być jedna linia:

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

Uwaga:

  • Wiem, że mogę to zawinąć - po prostu to jest prawdopodobnie łatwiejszy sposób.
  • Nie jestem martwi się wywołaniami asynchronicznymi - nie jest to kod produkcyjny.

Odpowiedz

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

Kolejna z tych często pomijanych klas użytkowych - ale ** tak ** przydatne. –

+22

Chciałbym nominować tę odpowiedź do Hall of Fame Stack Overflow w kategorii Best Answers Ever. –

+6

Dziękuję za ten zwięzły kod, dodając, że wymaga to przestrzeni nazw System.Net. –

Powiązane problemy