Einfachste Möglichkeit, in .NET von einer URL in eine Zeichenfolge zu lesen

109

Gegeben eine URL in einer Zeichenfolge:

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

Was ist der einfachste / prägnanteste Weg, um den Inhalt der Datei vom Server (auf den die URL zeigt) in eine Zeichenfolge in C # herunterzuladen?

Die Art, wie ich es im Moment mache, ist:

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

Das ist viel Code, der im Wesentlichen aus einer Zeile bestehen kann:

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

Hinweis: Ich mache mir keine Sorgen um asynchrone Aufrufe - dies ist kein Produktionscode.

Zügel
quelle

Antworten:

269
using(WebClient client = new WebClient()) {
   string s = client.DownloadString(url);
}
Marc Gravell
quelle
Eine andere dieser oft übersehenen Utility-Klassen - aber so nützlich.
Marc Gravell
2
Denken Sie daran, dass Sie es auch in einen try catchBlock legen sollten , falls etwas schief geht
mikeyq6
@ DanW ja, das tut es, ich habe es gerade (mit string s = client.DownloadString("/programming/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");) getestet - funktioniert absolut gut. Was auch immer passiert: Es ist nicht https, das das unmittelbare Problem ist. Sind Sie sicher, dass die Site ein gültiges Zertifikat hat?
Marc Gravell