วิธีที่ง่ายที่สุดในการอ่านจาก URL เป็นสตริงใน. NET


109

ระบุ URL เป็นสตริง:

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

วิธีใดง่ายที่สุด / รวบรัดที่สุดในการดาวน์โหลดเนื้อหาของไฟล์จากเซิร์ฟเวอร์ (ชี้ไปที่ URL) ลงในสตริงใน C #

วิธีที่ฉันทำในขณะนี้คือ:

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

นั่นคือรหัสจำนวนมากที่อาจเป็นบรรทัดเดียว:

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

หมายเหตุ: ฉันไม่กังวลเกี่ยวกับการโทรแบบอะซิงโครนัส - นี่ไม่ใช่รหัสการผลิต

คำตอบ:


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

หนึ่งในบรรดาอีกมักจะมองข้ามอาคารเรียน - แต่เพื่อประโยชน์
Marc Gravell

2
โปรดทราบว่าคุณควรวางไว้ในtry catchบล็อกด้วยเผื่อว่ามีอะไรผิดปกติ
mikeyq6

@ DanW ใช่ฉันเพิ่งทดสอบ (ด้วยstring s = client.DownloadString("/programming/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");) - ใช้งานได้ดีอย่างแน่นอน สิ่งที่เกิดขึ้น: มันไม่ใช่ https ที่เป็นปัญหาเฉพาะหน้า คุณแน่ใจว่าไซต์มีใบรับรองที่ถูกต้องหรือไม่?
Marc Gravell
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.