WebResponse超时

时间:2015-02-01 00:53:22

标签: c# webresponse response-headers

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

我认为这可能与“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");
    }
}

1 个答案:

答案 0 :(得分:2)

我认为这与未正确关闭响应有关。如果我没记错的话,WebResponse会实现IDisposable。所以尝试使用using语句来处理它。此外,.Net的某些客户端版本存在一些限制,默认情况下,您只能同时向同一服务器打开2个连接。如果您没有正确处理连接(WebResponse)(可能是因为保持活动设置),则此限制可能会启动。