Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] O meu ficou em loop infinito

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

    }
}
1 resposta
solução!

Consegui resolver. O problema é que eu criei uma nova variável seguindo o curso e esqueci que eu já tinha uma variável de busca, a qual eu chamei de "nome". =)