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.