我需要测试大约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行 - 它再次正常工作.取消注释此行 - 超时.什么可能导致这个问题的想法以及如何解决?
我有一个response.redirect(url)去另一个网站.
如果此操作失败,我应该如何重定向到重定向失败页面?
httpmodule到位.可以用吗?我有一个存储在服务器上的文件,我填充的网页取决于文件存在与否的fatc.
如何测试服务器上的文件是否可用?该文件在网页上显示为:http: //main.server.com/PGT/Reports/ObjectsReport.xml
我必须测试这个文件的存在,如果它可用,我将显示一个链接,否则我想隐藏链接.
服务器的实际路径是//main.server.com/inetpub/wwwroot/PGT/Reports/ObjectsReport.xml,但我无法访问网络上的服务器(因此也无法访问该文件).我只能使用网页访问它.有没有办法测试服务器是否有文件或显示链接?(hlObjectsReport.Visible = false;)
我试过使用以下内容:
Uri validatedUri; Uri.TryCreate(uri,UriKind.RelativeOrAbsolute,out validatedUri);
但即使文件不存在,它也会返回一个有效的地址.
谢谢托尼.