做了一个程序,需要从网上抓取大量数据。长时间抓取数据的时候,会报“链接超时”。请问怎么解决?
string strResult = "";
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            //声明一个HttpWebRequest请求 
            request.Timeout = 30000;
            //设置连接超时时间 
            request.Headers.Set("Pragma", "no-cache");
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream streamReceive = response.GetResponseStream();
            Encoding encoding = Encoding.GetEncoding("GB2312");
            StreamReader streamReader = new StreamReader(streamReceive, encoding);
            strResult = streamReader.ReadToEnd();
        }
        catch (Exception ex)
        {
            //MessageBox.Show("出错"); 
        }以上是抓取的代码。
请问  request.Timeout = 30000;这个值对于超时是否起关键作用?

解决方案 »

  1.   

    请问  request.Timeout = 30000;这个值对于超时是否起关键作用? 
    ------------------------
    起關鍵作用
      

  2.   

    如果是大数据抓取的话 request.Timeout 设置成多少比较合适?
      

  3.   

    建议参考一下多线程的下载技术原理...不过详细的东西洒家不懂
    timeout再大,总会被更大的数据搞爆,所以多线程下载应该要参考。
    其原理,就是把response分成多段来读取,每段的长度都可以自己定,然后timeout就该比较好定了