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

Haga lo que hicimos en aula

    package com.oasb.Screen_Macht.excepciones;

    public class ErrorEnConversionDeDuracionExcepcion extends RuntimeException {
        private String mensaje ;


        public ErrorEnConversionDeDuracionExcepcion(String mensaje) {
            this. mensaje = mensaje;

        }

        @Override
        public String getMessage(){
            return this.mensaje;
        }
    }
    

CLASE PRINCIPAL CON BUSQUEDA

        package com.oasb.Screen_Macht.principal;

    import com.google.gson.FieldNamingPolicy;
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    import com.oasb.Screen_Macht.excepciones.ErrorEnConversionDeDuracionExcepcion;
    import com.oasb.Screen_Macht.modelosAplicacion.TITULO;
    import com.oasb.Screen_Macht.modelosAplicacion.TITULO_OMDB;

    import java.io.IOException;
    import java.net.URI;
    import java.net.http.HttpClient;
    import java.net.http.HttpRequest;
    import java.net.http.HttpResponse;
    import java.util.Scanner;

    public class PRINCIPAL_CON_BUSQUEDA {

        public static void main(String[] args) throws IOException, InterruptedException {

            //busqueda


            Scanner lectura = new Scanner(System.in);
            System.out.println("ESCRIBA EL NOMBRE DE UNA PELICULA: ");
            var busqueda = lectura.nextLine();

            String direccion = "https://www.omdbapi.com/?t=" + busqueda.replace(" ", "-") + "&apikey=XXXXXXX"; // URL dinamica

            // peticion de informacion del cliente hacia el servidor

            //IDENTIFICACION y MANEJO de posibles correccion de errores  debido a NumberFormatException principalmente

            try {
                HttpClient client = HttpClient.newHttpClient();

                HttpRequest request = HttpRequest.newBuilder() //patron de diseño es un
                        // patrón de diseño creacional que se usa para construir objetos complejos de manera paso a paso.
                        // En lugar de crear objetos directamente con un constructor grande y lleno de parámetros, el Builder
                        // permite que la construcción sea más clara, organizada y flexible.
                        .uri(URI.create(direccion)) // aqui se pega la url que se obtuvo de postman
                        .build();


                // respuesta del servidor hacia el cliente
                HttpResponse<String> response = client
                        .send(request, HttpResponse.BodyHandlers.ofString());

                String json = response.body();//en esta variable se encuentra el json
                System.out.println(json);


                // se importa la biblioteca gson para poder agrupar los datos requeridos por el usuario o cliente
                // de Json a clase
                Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();

                //TITULO miTitulo = gson.fromJson(json, TITULO.class); //archivo json convertido a una clase TITULO
                TITULO_OMDB miTitulo_OMDB = gson.fromJson(json, TITULO_OMDB.class);
                System.out.println( "Titulo: " + miTitulo_OMDB );



                TITULO miTitulo = new TITULO(miTitulo_OMDB);
                System.out.println("TITULO YA CONVERTIDO" +miTitulo);
            } catch (NumberFormatException e) { // e = excepcion
                System.out.println("OCURRIO UN ERROR: ");
                System.out.println(e.getMessage());
            } catch ( NullPointerException | IllegalArgumentException  e) {
                System.out.println("OCURRIO UN ERROR EN LA URL, VERIFIQUE LA DIRECCION ");
            }catch (ErrorEnConversionDeDuracionExcepcion e){
                System.out.println( e.getMessage() );
            }

            System.out.println("FINALIZO LA EJECCION DEL PROGRAMA");

        }

    }

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad