我写了这个方法来检查页面是否存在:
protected bool PageExists(string url)
{
try
{
Uri u = new Uri(url);
WebRequest w = WebRequest.Create(u);
w.Method = WebRequestMethods.Http.Head;
using (StreamReader s = new StreamReader(w.GetResponse().GetResponseStream()))
{
return (s.ReadToEnd().Length >= 0);
}
}
catch
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我用它来检查一组页面(从AAAA-AAAZ迭代),运行整个循环需要3到7秒.有没有更快或更有效的方法来做到这一点?
Fre*_*örk 39
我认为您的方法相当不错,但会将其更改为仅w.Method = WebRequestMethods.Http.Head;在调用之前添加标题GetResponse.
这可以做到:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.example.com");
request.Method = WebRequestMethods.Http.Head;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
bool pageExists = response.StatusCode == HttpStatusCode.OK;
Run Code Online (Sandbox Code Playgroud)
您可能还想检查其他状态代码.
| 归档时间: |
|
| 查看次数: |
13601 次 |
| 最近记录: |