Verificando si un link existe con la .Net Framework

Un amigo necesitaba algo para recorrer una lista de links y ver si estos existian o no, como necesitaba la .Net framework decidí ayudarle y crearle un simple Extension Method que podría hacerle la vida más fácil que revisar link por link manualmente si la página existía, aquí los dejo con el código:

using System;
using Xunit;

namespace ClassLibrary2
{
    public class BrokenLinkFacts
    {
        [Fact]
        public void IsBrokenMustReturnFalse()
        {
            var url = new Uri(@"http://www.google.com");
            Assert.False(url.IsBroken());
        }

        [Fact]
        public void IsBrokenMustReturnTrue()
        {
            var url = new Uri("http://www.rioshu.com/does_not_exist");
            Assert.True(url.IsBroken());
        }

        [Fact]
        public void IsBrokenStringMustReturnFalse()
        {
            const string url = @"http://www.google.com";
            Assert.False(url.IsBroken());
        }

        [Fact]
        public void IsBrokenStringMustReturnTrue()
        {
            const string url = @"http://www.rioshu.com/does_not_exist";
            Assert.True(url.IsBroken());
        }
    }
}
using System;
using System.Net;

namespace ClassLibrary2
{
    public static class UrlExtension
    {
        public static bool IsBroken(this Uri uri)
        {
            var web_client = WebRequest.Create(uri);
            web_client.Timeout = 2000;

            try {
                web_client.GetResponse();
            } catch (WebException exception) {
                return true;
            }

            return false;
        }

        public static bool IsBroken(this string uri_string)
        {
            var uri = new Uri(uri_string);
            return IsBroken(uri);
        }
    }
}
This entry was posted in development and tagged , , . Bookmark the permalink.