Как получить веб-страницу с помощью C#?

Как получить веб-страницу и отобразить html на консоли с помощью C#?

Ответов (3)

Решение

Воспользуйтесь System.Net.WebClient классом.

System.Console.WriteLine(new System.Net.WebClient().DownloadString(url));

Придумал пример:

WebRequest r = WebRequest.Create("http://www.msn.com");
WebResponse resp = r.GetResponse();
using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
{
    Console.WriteLine(sr.ReadToEnd());
}

Console.ReadKey();

Вот еще один вариант, на этот раз используя WebClient и сделав это асинхронно:

static void Main(string[] args)
{
    System.Net.WebClient c = new WebClient();
    c.DownloadDataCompleted += 
         new DownloadDataCompletedEventHandler(c_DownloadDataCompleted);
    c.DownloadDataAsync(new Uri("http://www.msn.com"));

    Console.ReadKey();
}

static void c_DownloadDataCompleted(object sender, 
                                    DownloadDataCompletedEventArgs e)
{
    Console.WriteLine(Encoding.ASCII.GetString(e.Result));
}

Второй вариант удобен, поскольку он не блокирует поток пользовательского интерфейса, что дает лучший опыт.

// Save HTML code to a local file.
WebClient client = new WebClient ();
client.DownloadFile("http://yoursite.com/page.html", @"C:\htmlFile.html");

// Without saving it.
string htmlCode = client.DownloadString("http://yoursite.com/page.html");