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);
}
}
}
