正在检查是否存在url,但不适用于某些url

本文关键字:url 不适用 适用于 检查 是否 存在 | 更新日期: 2023-09-27 18:22:35

我正在使用HttpWebRequest检查是否存在url。问题是,它不适用于某些url。
示例:
http://www.gkrs.no/
https://www.politi.no/kripos/statistikk/narkotika/
这些url已经存在。但在代码中显示为不存在。它适用于我正在检查的大多数url,正是这两个导致了一些问题。有人举过我还需要检查的例子吗。也许他们的标题有些不同。

我已经尝试了GET和HEAD请求方法。
我还是编程新手,可能需要一个更简单的解释。抱歉英语不好,不是我的母语。如有任何帮助,我们将不胜感激。

internal static bool IsValidLenke(string url){
        if (String.IsNullOrEmpty(url))
            return false;
        try
        {
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            request.Method = "HEAD";
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            response.Close();
            return (response.StatusCode == HttpStatusCode.OK);
        }
        catch
        {
            //Any exception will returns false.
            return false;
        }
}

正在检查是否存在url,但不适用于某些url

http://www.gkrs.no/阻止您,因为您没有提供有效的用户代理。https://www.politi.no/kripos/statistikk/narkotika/不接受"HEAD",然后向您发送大量重定向,因此您需要一个cookie容器来避免陷入无限循环。

这样做:

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.MaximumAutomaticRedirections = 100;
request.AllowAutoRedirect = true;
request.CookieContainer = new CookieContainer();
request.Method = "GET";                
request.UserAgent = " Mozilla/5.0 (Windows NT 10.0; Win64; x64)";
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
response.Close();