我正在编写一个程序,它从一系列的网页中读取数据;这对第一页有效,但是它在等待下一页的响应时挂起,直到超时。无论我是从阅读第1页、第2页、第140页等开始,它都会成功地读到第一页,但在那之后就没有了。
我认为这可能与"cookieHeader“变量有关,该变量需要访问页面,因为网站需要用户首先登录。但是,当我检查这个元素时,它的过期时间被设置为第二天,所以我还不知道它是如何过期的。
我是新手,所以我希望以前遇到过这个问题的人或者对曲奇有更好的理解的人能帮我。如有任何意见,我将不胜感激!下面是代码片段,尝试捕获包装器捕获超时错误。
// loop through each page
for (int i = 1; i <= totalPages; i++)
{
string thisUrl = chatUrl + i; //add page number to url
WebRequest getReq = WebRequest.Create(thisUrl);
getReq.Headers.Add("Cookie", cookieHeader);
try
{
WebResponse getResp = getReq.GetResponse();
Console.WriteLine("Page " + i + " read successfully");
}
catch (Exception e)
{
Console.WriteLine("Page " + i + " failed");
}
}发布于 2015-02-01 03:05:55
我认为这与未能恰当地结束回应有关。如果我没记错的话,WebResponse实现IDisposable。所以,尝试使用语句来处理它。此外,对某些客户端版本的.Net也有一些限制,默认情况下,只能有两个连接同时打开到同一台服务器。如果没有正确地释放连接(WebResponse) (可能是因为保持活动设置),则可能会产生此限制。
https://stackoverflow.com/questions/28258291
复制相似问题