Ola pessoal, preciso de ajuda para entender o que esta acontecendo... O meu codigo ficou em loop infinito; Parece que o while não está funcionando muito bem. Já tentei trocar a palavra chave de "sair" para fim, end, etc, mas parece que ele encontra filmes com estas palavras tbm.
.....
public class PrincipalComBusca {
public static void main(String[] args) throws IOException, InterruptedException {
Scanner scan = new Scanner(System.in);
String busca = "";
List<Titulo> titulos = new ArrayList<>();
while (!busca.equalsIgnoreCase("sair")) {
System.out.println("Qual filme você quer pesquisar? ");
var nome = scan.nextLine();
if (busca.equalsIgnoreCase("sair")){
break;
}
var chaveAPI = "1cb25854";
var enderecoBusca = "http://www.omdbapi.com/?t=" + nome.replace(" ", "+") + "&apikey=" + chaveAPI;
try {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(enderecoBusca))
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
String json = response.body();
//System.out.println(json);
Gson gson = new GsonBuilder().
setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
TituloOmdb meuTituloOmdb = gson.fromJson(json, TituloOmdb.class);
//System.out.println(meuTituloOmdb);
Titulo meuTitulo = new Titulo(meuTituloOmdb);
//System.out.println("Titulo já convertido");
//System.out.println(meuTitulo);
titulos.add(meuTitulo);
//FileWriter escrita = new FileWriter("filmes.txt");
//escrita.write(meuTitulo.toString());
//meuTitulo.exibeFichaTecnica();
//escrita.close();
} catch (NumberFormatException e) {
System.out.println("Aconteceu um erro: ");
System.out.println(e.getMessage());
} catch (IllegalArgumentException e) {
System.out.println("Algum erro de argumento na busca, verifique o endereço: ");
} catch (ErroDeConversaoDeAnoException e) {
System.out.println(e.getMessage());
}
}
System.out.println(titulos);
System.out.println("O programa finalizou corretamente");
}
}