Il modo più semplice per leggere da un URL in una stringa in .NET


109

Dato un URL in una stringa:

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

Qual è il modo più semplice / sintetico per scaricare il contenuto del file dal server (indicato dall'URL) in una stringa in C #?

Il modo in cui lo sto facendo al momento è:

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

È un sacco di codice che potrebbe essere essenzialmente una riga:

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

Nota: non sono preoccupato per le chiamate asincrone: questo non è codice di produzione.

Risposte:


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

Un'altra di quelle classi di utilità spesso trascurate, ma così utili.
Marc Gravell

2
Tieni presente che dovresti metterlo anche in un try catchblocco, nel caso in cui qualcosa vada storto
mikeyq6

@ DanW sì, l'ho appena testato (con string s = client.DownloadString("/programming/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");) - funziona perfettamente. Qualunque cosa stia succedendo: non è https il problema immediato. Sei sicuro che il sito abbia un certificato valido?
Marc Gravell
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.