C# 基础连接已关闭:接收时发生意外错误。从Url下载Html代码
我使用以下代码从url下载字符串html:C# 基础连接已关闭:接收时发生意外错误。从Url下载Html代码,c#,httprequest,C#,Httprequest,我使用以下代码从url下载字符串html: HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(currentUrl); httpWebRequest.KeepAlive = true; httpWebRequest.Timeout = 3600000; httpWebRequest.UserAgent = "Mozilla / 5.0(Windows NT 6.1; WOW64; rv: 30.0) Gecko /
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(currentUrl);
httpWebRequest.KeepAlive = true;
httpWebRequest.Timeout = 3600000;
httpWebRequest.UserAgent = "Mozilla / 5.0(Windows NT 6.1; WOW64; rv: 30.0) Gecko / 20100101 Firefox / 30.0";
HttpWebResponse httpWebResponse = httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
currenturlContent = streamReader.ReadToEnd();
我运行一个循环,从一个网站的多个URL获取html。我认为问题在于网站安全。它可以在第一次读取html,然后就出错了 错误是: 基础连接已关闭:接收时发生意外错误 这是我的循环
而(currentPage一旦使用streamReader,您应该尝试关闭它:
streamReader.close();
请参阅此链接:
…问题总是在于,开发人员调用了GetResponseStream()
方法,但随后未能调用Close()
。结果是.NET无限期地保持对象的活动状态,这会导致后续请求最终阻塞每个主机的默认连接限制
您能在导致错误的循环上下文中显示代码吗?请发布一个。
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(currentUrl);
httpWebRequest.KeepAlive = true;
httpWebRequest.Timeout = 3600000;
httpWebRequest.UserAgent = "Mozilla / 5.0(Windows NT 6.1; WOW64; rv: 30.0) Gecko / 20100101 Firefox / 30.0";
HttpWebResponse httpWebResponse = httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
currenturlContent = streamReader.ReadToEnd();
}
}