我需要测试大约300个网址,以验证它们是否会导致实际页面或重定向到其他页面.我使用HttpWebRequest在.NET 2.0中编写了一个简单的应用程序来检查它.这是代码片段:
System.Net.HttpWebRequest wr = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create( url );
System.Net.HttpWebResponse resp = (System.Net.HttpWebResponse)wr.GetResponse();
code = resp.StatusDescription;
Run Code Online (Sandbox Code Playgroud)
代码运行得很快并写入文件,我的所有网址都返回状态200 OK.然后我意识到默认情况下GetResponse()遵循重定向.傻我!所以我添加了一行以使其正常工作:
System.Net.HttpWebRequest wr = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create( url );
wr.AllowAutoRedirect = false;
System.Net.HttpWebResponse resp = (System.Net.HttpWebResponse)wr.GetResponse();
code = resp.StatusDescription;
Run Code Online (Sandbox Code Playgroud)
我再次运行该程序并等待......等待...等待...事实证明,对于每个URL我得到一个System.Net.WebException"操作已经超时".很惊讶,我手动检查了URL - 工作正常......我注释掉了AllowAutoRedirect = false行 - 它再次正常工作.取消注释此行 - 超时.什么可能导致这个问题的想法以及如何解决?