为什么HttpWebRequest多线程并发访问总是会被阻塞
一直以来好好的,可是今天 突然不行了,好像 杀毒软件NOD32自动更新后出现的症状,百思不得其解,现在将NOD32清除干净了还是无法还原,
有一个抓取程序 使用HttpWebRequest多线程抓取网页, 全部HttpWebRequest被阻塞直到访问超进,服务器的带宽很好的,而且被访问的网站是超快的,如果改成单线程症状消失,如果改成哪怕2个线程也会被阻塞到超时,也就是说我的程序如果用HttpWebRequest开多个线程下载网页将莫名奇妙被访问超时. 一直以来都是好好的
有没有遇到同样问题的朋友
核心 代码 一直被阻塞的代码
有一个抓取程序 使用HttpWebRequest多线程抓取网页, 全部HttpWebRequest被阻塞直到访问超进,服务器的带宽很好的,而且被访问的网站是超快的,如果改成单线程症状消失,如果改成哪怕2个线程也会被阻塞到超时,也就是说我的程序如果用HttpWebRequest开多个线程下载网页将莫名奇妙被访问超时. 一直以来都是好好的
有没有遇到同样问题的朋友
核心 代码 一直被阻塞的代码
public virtual string GetHtmlCode(string url)
{
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; Alexa Toolbar; .NET CLR 2.0.50727)";
req.Timeout = 100 * 1000;
HttpWebResponse webResponse = (HttpWebResponse)req.GetResponse();
Stream stream = webResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(stream, this.HtmlEncoding);
result = streamReader.ReadToEnd();
streamReader.Close();
webResponse.Close();
}
catch (Exception exp)
{
Log.AddSystemException(exp);
}
}
...全文
相关推荐
C# httpwebrequest 多线程下载类
C# 多线程基本于httpwebrequest实现的下载功能 每个线程均可以通过事件追踪情况
C#中HttpWebRequest、WebClient、HttpClient的使用详解
主要介绍了C#中HttpWebRequest、WebClient、HttpClient的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
unity-HttpWebRequest下载
unity-HttpWebRequest下载,支持断点续传,支持临时文件,ios、安卓支持
C#基于HttpWebRequest实现发送HTTP请求的方法分析
主要介绍了C#基于HttpWebRequest实现发送HTTP请求的方法,结合实例形式分析了C#使用HttpWebRequest类与System.IO类实现发送HTTP请求相关操作技巧与注意事项,需要的朋友可以参考下
C#在WinForm下使用HttpWebRequest上传文件并显示进度
里面不是完整项目用例,只是一个类文件,喜欢直接打开运行的朋友别下,千万别下,浪费你积分,看方法可以到我博客看。


