首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C#中下载超文本标记语言页面并将其加载到内存中的最快方法

在C#中下载超文本标记语言页面并将其加载到内存中的最快方法
EN

Stack Overflow用户
提问于 2017-03-20 20:09:37
回答 1查看 629关注 0票数 1

我已经编写了以下代码,可以从给定的URL下载页面:

代码语言:javascript
运行
复制
   string html = string.Empty;
   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
   request.AutomaticDecompression = DecompressionMethods.GZip;
   request.Proxy = null;
   request.ServicePoint.UseNagleAlgorithm = false;
   request.ServicePoint.Expect100Continue = false;
   request.Method = "GET";
   using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
   using (Stream stream = response.GetResponseStream())
   using (StreamReader reader = new StreamReader(stream))
   {
   html = reader.ReadToEnd();
   }

但这需要5-8秒来下载HTML文件,这是相当慢的。我的问题是,有没有办法改进这段代码,或者使用其他一些代码/库,可以比这个更快地执行给定URL的HTML下载?

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-20 21:30:53

为什么不使用httpclient,然后以这种方式将结果写入文件?

代码语言:javascript
运行
复制
using (HttpClient client = new HttpClient())
{
    using (HttpRequestMessage request = new HttpRequestMessage())
    {
        request.Method = HttpMethod.Get;
        request.RequestUri = new Uri("http://www.google.com", UriKind.Absolute);

        using (HttpResponseMessage response = await client.SendAsync(request))
        {
            if (response.IsSuccessStatusCode)
            {
                if (response.Content != null)
                {
                    var result = await response.Content.ReadAsStringAsync();
                    // write result to file
                }
            }
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42903215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档