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)(可能是因为保持活动设置),此限制可能会生效。
我正在编写一个从一系列网页中读取数据的程序;这适用于第一页,但是它会在等待下一页的响应时挂起,直到超时。无论我是从阅读第 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)(可能是因为保持活动设置),此限制可能会生效。