【发布时间】:2011-10-05 10:19:08
【问题描述】:
我想创建一个方法来确定特定 URL 是否可以匿名使用。我这样做是为了从自定义搜索页面中删除无法访问的结果。我能想到的最好的是
public bool IsWebAddressAccessible(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
catch (System.Net.WebException)
{
return false;
}
return true;
}
但是,由于两个原因,这并不理想。首先,据我了解,以这种方式依赖逻辑异常是不高效的。其次,在页面可访问的情况下,似乎要检索整个页面,比较耗时。所以问题是:
- 有没有办法在不依赖异常的情况下做到这一点?
- 有没有办法加快这个速度,这样我就可以在不等待检索整个页面的情况下查看响应是否返回为 401?
【问题讨论】:
-
只是为了确认一下,您想尽可能使用内置的 .NET 类来处理 HTTP,因此您保留自动使用 IE 代理设置等?它只是一个常规请求,没有 cookie,没有 POST 数据等吗?
-
这只是使用当前代理设置的基本请求。请求中没有发送任何特殊内容。我要做的就是查看响应是否返回 401 与页面数据。
标签: c# httpwebrequest