Cara termudah untuk membaca dari URL menjadi string di .NET

109

Diberikan URL dalam string:

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

Apa cara termudah / paling ringkas untuk mengunduh konten file dari server (ditunjukkan oleh url) ke dalam string di C #?

Cara saya melakukannya saat ini adalah:

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

Itu banyak kode yang pada dasarnya bisa menjadi satu baris:

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

Catatan: Saya tidak khawatir tentang panggilan asinkron - ini bukan kode produksi.

kendali
sumber

Jawaban:

269
using(WebClient client = new WebClient()) {
   string s = client.DownloadString(url);
}
Marc Gravell
sumber
Salah satu kelas utilitas yang sering diabaikan - tetapi sangat berguna.
Marc Gravell
2
Ingatlah bahwa Anda juga harus memasukkannya ke dalam try catchblok, jika terjadi
kesalahan
@DanW ya, saya baru saja mengujinya (dengan string s = client.DownloadString("/programming/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");) - berfungsi dengan baik. Apa pun yang terjadi: bukan https yang menjadi masalah langsung. Apakah Anda yakin situs tersebut memiliki sertifikat yang valid?
Marc Gravell