Web响应超时

WebResponse Timeout

我正在编写一个从一系列网页中读取数据的程序;这适用于第一页,但是它会在等待下一页的响应时挂起,直到超时。无论我是从阅读第 1、2、140 页等开始,它总是会成功阅读第一页,但之后 none。

我认为这可能与 "cookieHeader" 变量有关,这是访问页面所必需的,因为网站需要用户先登录。但是当我检查这个元素时,它的过期时间设置为第二天,所以我还没有看到它是如何过期的。

我是新手,所以我希望以前遇到过这个问题或者对 cookie 有更好了解的人可以帮助我。我将不胜感激任何输入!下面是一段代码,其中超时错误被 try-catch 包装器捕获。

// 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");
    }
}

我觉得跟没有正确关闭response有关系。如果我没记错的话,WebResponse 实现了 IDisposable。所以尝试使用 using 语句处理它。此外,某些客户端版本的 .Net 有一些限制,默认情况下,您只能同时打开到同一服务器的 2 个连接。如果您没有正确处理连接 (WebResponse)(可能是因为保持活动设置),此限制可能会生效。