码迷,mamicode.com
首页 > 编程语言 > 详细

多线程httpWebRequest

时间:2016-11-01 19:09:26      阅读:399      评论:0      收藏:0      [点我收藏+]

标签:属性   时间   time   system   提高效率   ice   bsp   否则   处理   

//在初始化方法设置以下相关属性.              
                //对象所允许的最大并发连接数//可在配置文件中设置
                System.Net.ServicePointManager.DefaultConnectionLimit = 1000;
                //是否使用 Nagle 不使用 提高效率 
                System.Net.ServicePointManager.UseNagleAlgorithm = false;
                //对象的最大空闲时间.(默认为100秒的)
                System.Net.ServicePointManager.MaxServicePointIdleTime = 3600 * 1000;
//-------------------------------------------------------------------------------------------
//在 while循环中的处理..
 while (!worker.CancellationPending)
{
                request = WebRequest.Create(userUrl) as HttpWebRequest;
                 request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
                request.Proxy = null;//
                request.KeepAlive = true;
                //数据是否缓冲 false 提高效率  
                request.AllowWriteStreamBuffering = false;

                 Stream stream = null;
                if (response.ContentEncoding.ToLower().Contains("gzip"))
                {
                    stream = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress);
                }
                else if (response.ContentEncoding.ToLower().Contains("deflate"))
                {
                    stream = new DeflateStream(response.GetResponseStream(), CompressionMode.Decompress);
                }
                else
                {
                    stream = response.GetResponseStream();
                }
                using (stream)
                {
                    using (StreamReader sr = new StreamReader(stream, true))
                    {
                        string resultString = sr.ReadToEnd();
                    }

//-------------------------------------------------------------------------------------------

//使用完后要进行释放,否则易造成网络堵塞
                if (request != null)
                {
                    request.Abort();
                    request = null;
                }
                if (response != null)
                {
                    response.Close();
                    response = null;
                }
}

//在适当时间进行 强制垃圾回收.
System.GC.Collect();

//-------------------------------------------------------------------------------------------

//以上是总结的关于多线程使用 HttpWebRequest 用于提高效率获取网页源代码的 相关设置. (省略了其他代码..)

 

多线程httpWebRequest

标签:属性   时间   time   system   提高效率   ice   bsp   否则   处理   

原文地址:http://www.cnblogs.com/rexfieBlogs/p/6020284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!