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