Moyen le plus simple de lire une URL dans une chaîne dans .NET

109

Étant donné une URL dans une chaîne:

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

Quel est le moyen le plus simple / le plus succinct de télécharger le contenu du fichier depuis le serveur (indiqué par l'URL) dans une chaîne en C #?

La façon dont je le fais pour le moment est:

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

C'est beaucoup de code qui pourrait essentiellement être une ligne:

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

Remarque: je ne suis pas préoccupé par les appels asynchrones - ce n'est pas du code de production.

rêne
la source

Réponses:

269
using(WebClient client = new WebClient()) {
   string s = client.DownloadString(url);
}
Marc Gravell
la source
Une autre de ces classes d'utilité souvent négligées - mais si utile.
Marc Gravell
2
Gardez à l'esprit que vous devriez également le mettre dans un try catchbloc, au cas où quelque chose ne va pas
mikeyq6
@DanW oui, je viens de le tester (avec string s = client.DownloadString("/programming/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");) - fonctionne parfaitement. Quoi qu'il arrive: ce n'est pas https qui est le problème immédiat. Êtes-vous sûr que le site a un certificat valide?
Marc Gravell