Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
7
respuestas

Error al corrrer el programa

Al correr el programa y consultar la pelicula no me genera error me aparece este mensaje...

"C:\Program Files\Java\jdk-17\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1\lib\idea_rt.jar=58826:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Usuario\Documents\LEOM\CursoOracle\JavaOracle\starwarsapi\out\production\starwarsapi;C:\Users\Usuario\Documents\LEOM\CursoOracle\JavaOracle\Gson\gson-2.10.1.jar Principal null

Process finished with exit code 0

Pero no me trae la pelicula. Alguien me puede colaborar con esto. Muchas Gracias, Este es mi codigo

7 respuestas

Hola Luis, espero te encuentres bien.

Con respecto a tu error, sera que puedes hacer una captura de pantalla y subirla, sería mas sencillo verlo desde la consola. Y la parte de tu codigo Principal, que parece que es null, si mal no interpreto el mensaje que copiaste.

Muchas gracias :D

Hola Maximiliano, muchas gracias por respoder. La verdad he tratado de subir la foto pare responderte pero le doy inserta y no la adjunta, la copio y la pego y tampoco la adjunta. No se como mas hacerlo.

Te envio el codigo por su me puedes ayudar. Quedo muy atento .

import com.google.gson.Gson; import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse;

public class ConsultaPelicula {

public Pelicula buscaPelicula(int numeroDePelicula){

    URI direccion = URI.create("https://swapi.py4e.com/api/films/" + numeroDePelicula);

    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder()
            .uri(direccion)
            .build();

    try {
        HttpResponse<String> response = client
                .send(request, HttpResponse.BodyHandlers.ofString());
        return new Gson().fromJson(response.body(), Pelicula.class);
    } catch (Exception e) {
        throw new RuntimeException("No encontre esa Pelicula");
    }


}

}

Hola Luis, al parecer no tienes ningun problema en tu metodo buscarPelicula, por favor compartenos como estas implementado este metodo en la clase Principal..

Hola Janson, claro que si. Muchas gracias por tu ayuda.

import java.util.Scanner;

public class Principal { public static void main(String[] args) {

    Scanner lectura = new Scanner(System.in);
    ConsultaPelicula colsulta = new ConsultaPelicula();
    System.out.println("Escriba el numero de la pelicula que quiere consultar");

    try {
        var numeroDePelicula =  Integer.valueOf(lectura.nextLine());
        Pelicula pelicula = colsulta.buscaPelicula(2);
        System.out.println(pelicula);
    }catch (NumberFormatException e) {
        System.out.println("Numero no encontrado" + e.getMessage());
    }catch (RuntimeException e){
        System.out.println(e.getMessage());
        System.out.println("Finalizando la aplicacion");
    }

}

}

Luis, por lo que veo esta todo bien definido y utilizado.

¿Sera que puedes copiar el error que te tira? Seria de mucha utilidad

Hola Maximiliano, claro que si , es que error como tal no saca es que trae la pelicula como null

"C:\Program Files\Java\jdk-17\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1\lib\idea_rt.jar=51337:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Usuario\Documents\LEOM\CursoOracle\JavaOracle\starwarsapi\out\production\starwarsapi;C:\Users\Usuario\Documents\LEOM\CursoOracle\JavaOracle\Gson\gson-2.10.1.jar Principal Escriba el numero de la pelicula que quiere consultar 1 null

Process finished with exit code 0

Ah!! Tenes razon, ya lo habias dicho desde un principio, habia comprendido mal, mis disculpas.

Ahí estuve haciendo unas pruebas, el unico inconveniente que tiene es el URL que está escrito en buscaPeliculas: URI direccion = URI.create("https://swapi.py4e.com/api/films/" + numeroDePelicula);

Te devuelve null esa direccion (sinceramente no se cual es el problema, pero calculo que debe estar escrito de una forma que no lo reconoce), deberias poner la siguiente direccion: URI direccion = URI.create("https://swapi.dev/api/films/" + numeroDePelicula);

Una vez que realices ese pequeño cambio veras que devuelve correctamente y no null.

Espero haber sido de ayuda, y por cualquier inconveniente o duda, siempre dispuesto a ayudar. Un abrazo