当前位置:  开发笔记 > 编程语言 > 正文

最快的C#代码下载网页

如何解决《最快的C#代码下载网页》经验,为你挑选了5个好方法。

给定一个URL,下载该网页内容的最有效代码是什么?我只考虑HTML,而不是相关的图像,JS和CSS.



1> John Sheehan..:
public static void DownloadFile(string remoteFilename, string localFilename)
{
    WebClient client = new WebClient();
    client.DownloadFile(remoteFilename, localFilename);
}


这是最慢的!,实例化一个新的WebClient在实际下载之前有3-5个延迟我听说它是​​由于检查代理支持.我建议使用Socket方法下载,因为这是最快的解决方案
我把最快的解释为"尽可能少的代码".

2> Chris..:

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


希望MSDN实际上会在他们的示例中处理IDisposable资源.一个小例外和Stream/StreamReader将不会被清除.`using`是你的朋友.

3> Adam Haile..:

使用System.Net中的WebClient类; 在.NET 2.0及更高版本上.

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



4> EKanadily..:

这是我的答案,一个获取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;
    }



5> liang..:

WebClient.DownloadString

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

    Console.WriteLine (reply);
}

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有