【发布时间】:2011-01-02 13:58:35
【问题描述】:
我需要测试大约 300 个 URL,以验证它们是指向实际页面还是重定向到其他页面。我使用 HttpWebRequest 在 .NET 2.0 中编写了一个简单的应用程序来检查它。这是sn-p的代码:
System.Net.HttpWebRequest wr = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create( url );
System.Net.HttpWebResponse resp = (System.Net.HttpWebResponse)wr.GetResponse();
code = resp.StatusDescription;
代码运行速度很快并写入文件,我的所有网址都返回状态 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;
我再次运行程序并等待......等待......等待......结果对于每个 url,我都得到了 System.Net.WebException“操作已超时”。惊讶的是,我手动检查了 URL - 工作正常......我注释掉 AllowAutoRedirect = false 行 - 它再次正常工作。取消注释这一行 - 超时。有什么想法可能导致此问题以及如何解决?
【问题讨论】:
标签: c# .net redirect httpwebrequest