Verificar si una URL es válida o no en Java

Codigos

Te enseñaré 3 formas de validar una URL en Java. Los siguientes ejemplos le ayudarán a verificar si una dirección web es válida o no.

1. Validar URL con Apache commons validator

Usando el paquete apache commons validator podemos usar la clase URLValidator para validar la URL, comprobando el esquema, la autoridad, la ruta, la consulta y el fragmento.

// Programa Java para verificar si una URL es válida usando Apache
// common validator.
import org.apache.commons.validator.routines.UrlValidator;

class URLValidator {
    public static boolean urlValidator(String url)
    {
        /* Obteniendo UrlValidator */
        UrlValidator defaultValidator = new UrlValidator();
        return defaultValidator.isValid(url);
    }
    
    public static void main(String[] args)
    {
        String url = "https://www.javadesdecero.es/";

        /* validar una url */
        if (urlValidator(url))
            System.out.print("La url dada " + url + " es válida");
        else
            System.out.print("La url dada " + url + " no es válida");
    }
}

Salida:

La url dada https://www.javadesdecero.es/ es válida

2. Validar URL con java.net.url

También podemos usar la clase java.net.url para validar una URL. La idea es crear un objeto URL a partir de la representación String especificada. Se lanzará un error MalformedURLException si no se especifica ningún protocolo, si se encuentra un protocolo desconocido o si la especificación es nula. Luego llamaremos al método toURI() que arrojará una URISyntaxException si la URL no se puede convertir a URI.

// Programa Java para verificar si una URL es válida usando
// java.net.url
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;

class URLValidator {

    public static boolean urlValidator(String url)
    {
        /*validación de url*/
        try {
            new URL(url).toURI();
            return true;
        }
        catch (URISyntaxException exception) {
            return false;
        }

        catch (MalformedURLException exception) {
            return false;
        }
    }

    public static void main(String[] args)
    {
        String url = "https://www.javadesdecero.es/";

        /* validar la url */
        if (urlValidator(url))
            System.out.print("La url dada " + url + " es válida");
        else
            System.out.print("La url dada " + url + " no es válida");
    }
}

Salida:

La url dada https://www.javadesdecero.es/ es válida

3. Validar URL con expresión regular por owasp

La idea es simple usando la expresión regular por owasp. La expresión a utilizar es:

^((((https?|ftps?|gopher|telnet|nntp)://)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*’;/?:@&=+$, A-Za-z0-9])+)([).!’;/?:, ][[:blank:]])?$

Ejemplo:

// Programa Java para verificar si una URL es válida usando
// regular expression por owasp
import java.util.regex.Matcher;
import java.util.regex.Pattern;

class URLValidator {
    /*expresión regular*/
    private static final String URL_REGEX =
            "^((((https?|ftps?|gopher|telnet|nntp)://)|(mailto:|news:))" +
                    "(%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@&=+$, A-Za-z0-9])+)" + "([).!';/?:, ][[:blank:]])?$";

    private static final Pattern URL_PATTERN = Pattern.compile(URL_REGEX);

    public static boolean urlValidator(String url)
    {

        if (url == null) {
            return false;
        }

        Matcher matcher = URL_PATTERN.matcher(url);
        return matcher.matches();
    }

    public static void main(String[] args)
    {
        String url = "https://www.javadesdecero.es/";

        /* validar la url */
        if (urlValidator(url))
            System.out.print("La url dada " + url + " es válida");
        else
            System.out.print("La url dada " + url + " no es válida");
    }
}

Salida:

La url dada https://www.javadesdecero.es/ es válida
Código en Java
  • 10/10
    Validar URL - 10/10

Sobre el Autor:

Hey hola! Yo soy Alex Walton y tengo el placer de compartir conocimientos hacía ti sobre el tema de Programación en Java, desde cero, Online y Gratis.

Deja una Respuesta

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.