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.

Antworten:


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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.