Самый быстрый C # код для загрузки веб-страницы

Учитывая URL, какой код будет наиболее эффективным для загрузки содержимого этой веб-страницы? Я рассматриваю только HTML, а не связанные изображения, JS и CSS.

56 c#
25.08.2008 15:23:05
6 ОТВЕТОВ
РЕШЕНИЕ
public static void DownloadFile(string remoteFilename, string localFilename)
{
    WebClient client = new WebClient();
    client.DownloadFile(remoteFilename, localFilename);
}
64
25.08.2008 15:24:22
Это самое медленное !, создание экземпляра нового WebClient имеет задержку 3-5, прежде чем он действительно загрузится, я слышал, что это связано с проверкой поддержки прокси. Я бы рекомендовал использовать подход Socket для загрузки, так как это самое быстрое решение
SSpoke 30.09.2015 01:15:39
Я интерпретировал быстрее всего как "с минимальным количеством букв кода".
Anders Lindén 8.12.2017 15:50:32

System.Net.WebClient

Из MSDN:

using System;
using System.Net;
using System.IO;

public class Test
{
    public static void Main (string[] args)
    {
        if (args == null || args.Length == 0)
        {
            throw new ApplicationException ("Specify the URI of the resource to retrieve.");
        }
        WebClient client = new WebClient ();

        // Add a user agent header in case the 
        // requested URI contains a query.

        client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

        Stream data = client.OpenRead (args[0]);
        StreamReader reader = new StreamReader (data);
        string s = reader.ReadToEnd ();
        Console.WriteLine (s);
        data.Close ();
        reader.Close ();
    }
}
26
25.08.2008 15:24:20
Хотелось бы, чтобы MSDN на самом деле располагал IDisposable ресурсами в своих примерах. Одно небольшое исключение, и Stream / StreamReader не будет очищен. usingтвой друг.
Eric J. 5.06.2012 00:53:44

Используйте класс WebClient из System.Net; на .NET 2.0 и выше.

WebClient Client = new WebClient ();
Client.DownloadFile("http://mysite.com/myfile.txt", " C:\myfile.txt");
23
25.08.2008 15:25:36

вот мой ответ, метод, который берет URL и возвращает строку

public static string downloadWebPage(string theURL)
    {
        //### download a web page to a string
        WebClient client = new WebClient();

        client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

        Stream data = client.OpenRead(theURL);
        StreamReader reader = new StreamReader(data);
        string s = reader.ReadToEnd();
        return s;
    }
8
1.09.2014 11:46:50
Лучший ответ. Спасибо.
AH. 5.04.2018 07:40:25

WebClient.DownloadString

public static void DownloadString (string address)
{
    WebClient client = new WebClient ();
    string reply = client.DownloadString (address);

    Console.WriteLine (reply);
}
8
18.12.2014 17:39:42

Я думаю, что это самое быстрое (скорость загрузки с низкой задержкой) решение для загрузки.

// WebClient vs HttpClient vs HttpWebRequest vs RestSharp
// در نهایت به نظرم روش زیر سریعترین روشه
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(url);
Request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
Request.Proxy = null;
Request.Method = "GET";
using (WebResponse Response = Request.GetResponse())
{
    using (StreamReader Reader = new StreamReader(Response.GetResponseStream()))
    {
        return Reader.ReadToEnd();
    }
}
2
3.02.2019 11:40:18
многие, брат твой, твой путь был самым быстрым.
Alen.Toma 23.03.2020 16:33:19