检查URL是否可访问会引发ProtocolError

时间:2013-02-18 15:02:49

标签: c# validation url webrequest webresponse

我正在编写一个应用程序,它会检查IE中的所有收藏夹。应用程序应该提供更多选项,但此时它们并不相关。

阅读书签的特定网址可以正常工作。通过尝试检查可用性,我尝试了来自C# How can I check if a URL exists/is valid?

的jsmith解决方案

对于某些书签,它工作正常,但大多数都在WebException的catch-Block中给出了一个Exception。它说“ProtocolError”。

我尝试了两种方法,发布并获取。但“获取”也不起作用。是否有任何人有想法或任何其他解决方案可以正常检查URL?

编辑:这是我的代码。 Class Bookmark只是一个带有getter / setter和一些其他方法的类。 GetValue将URL作为String返回。

一个例子是:http://tablet-market.de/android-app-programmieren/

enter code here static public void checkIfListOfBookmarksIsAvailable(Bookmark bookmark)
    {
        if (bookmark.getValue() != null)
        {
            Uri myUri;
            if (Uri.TryCreate(bookmark.getValue(), UriKind.Absolute, out myUri))
            {
                HttpWebRequest request = WebRequest.Create(bookmark.getValue()) as HttpWebRequest;
                request.Method = "HEAD";
                request.Timeout = 10000;
                HttpWebResponse response = null;
                try
                {
                    response = request.GetResponse() as HttpWebResponse;
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        bookmark.available = true;
                    }
                }
                catch
                {
                    bookmark.available = false;
                }
            }
        }
        else
        {
            bookmark.available = false;
        }
    }

0 个答案:

没有答案