Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] Error de URL

Segun la profe:

 // Busqueda de Libros por nombre
        System.out.println("Ingrese el nombre del libro que desea buscar");
        var tituloLibro = teclado.nextLine();
        // Codificar el parametro para URL
        var tituloCodificado = URLEncoder.encode(tituloLibro, StandardCharsets.UTF_8);
        json = consumoAPI.obtenerDatos(URL_BASE + "?search=" + tituloLibro);
        var datosBusqueda = conversor.obtenerDatos(json, Datos.class);
        Optional<DatosLibros> libroBuscado = datosBusqueda.resultados().stream()
                .filter(l ->l.titulo().toUpperCase().contains(tituloLibro.toUpperCase()))
                .findFirst();
        if (libroBuscado.isPresent()) {
            System.out.println("Libro encontrado ");
            System.out.println(libroBuscado.get());
        } else {
            System.out.println("Libro no encontrado ");
        }
    }

Imagen consola

Modificando:

json = consumoAPI.obtenerDatos(URL_BASE + "&search=" + tituloLibro);

Este es el resultado:
Imagen sonsola

1 respuesta

Hola Christian, espero que estés bien

Parece que el problema está relacionado con cómo se está construyendo la URL para la búsqueda. Veo que en el código original no se está utilizando la variable tituloCodificado, que es la que contiene el título del libro codificado de manera adecuada para una URL.

Aquí tienes cómo podrías modificar el código para utilizar tituloCodificado en lugar de tituloLibro al construir la URL:

// Codificar el parametro para URL
var tituloCodificado = URLEncoder.encode(tituloLibro, StandardCharsets.UTF_8);
json = consumoAPI.obtenerDatos(URL_BASE + "?search=" + tituloCodificado);

El uso de URLEncoder.encode es crucial para asegurar que cualquier carácter especial en el título del libro se maneje correctamente en la URL.

Espero que esto solucione el problema y que puedas encontrar los libros correctamente. ¡Buena suerte con tu proyecto!

Espero haber ayudado y buenos estudios!