日期:2014-05-17  浏览次数:21107 次

抓取HTML代码速度好慢啊~怎么处理?
网上的例子:

 public string GetWebPageResponse(string uriArg)
        {
            System.IO.Stream responseStream = System.Net.WebRequest.Create(uriArg).GetResponse().GetResponseStream();
            System.IO.StreamReader reader = new System.IO.StreamReader(responseStream);
            return reader.ReadToEnd();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            new System.Threading.Thread(delegate()
            {
                string strHtml = GetWebPageResponse("http://www.baidu.com/");
                // 后台执行部分
                this.Invoke((EventHandler)delegate
                {
                    richTextBox1.Text = strHtml;
                    // 操作UI部分
                });

            }).Start();
        }

测试网站是百度
无论在店里还是家里。取得代码的时间都要20s左右。网速用chrome下载东西速度都有200kbs,是什么原因造成取代码速度这么慢?

------解决方案--------------------
你应该先 GetRquest ,随便发点什么东西  --〉  你应该先 GetRquestStream() ,随便发点什么东西

实际上,就是你把它Close了(例如达到了Usin{}结构的最后),服务器结束等待提交数据,才会开始给你下载数据。

如果想简单点写,请实用 new WebClient().DownloadData(...) 或者 new WebClient().DownloadString(...)。这才是“一行”即成功的封装好的方法。