有没有更快的方法来检查外部网页是否存在?

And*_*ers 14 c# asp.net

我写了这个方法来检查页面是否存在:

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)

您可能还想检查其他状态代码.

  • 并检查响应状态. (5认同)