5
respostas

Como seria este codigo em Java 8

Olá, nao consegui reproduzir este codigo na versao do java 8, queria saber como fazer isso

5 respostas

Olá Alires, bom dia!

Eu não tenho acesso a este curso. Poderia compartilhar o projeto aqui, por favor? Talvez eu consiga contribuir.

Abraços e bons estudos!

olá, bom dia

public class PrincipalcomBusca {

public static void main(String[] args) throws IOException, InterruptedException {
    Scanner leitura = new Scanner(System.IN);
    System.out.println(“Digite o nome do filme para busca: “);
    var busca = leitura.nextLine();

    String chave = “COLOQUE AQUI A SUA CHAVE DO OMDb”;
    String endereco = “https://www.omdbapi.com/?t=” +busca + “&apikey=” +chave;

    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder().uri(URI.create(endereco)).build();
    HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

    System.out.println(response.body());
}

}

o projeto seria este acima

obrigada pela atencao Thatiana.

Consegui roda no java 8 :)

Segue codigo

public class PrincipalcomBusca {

public static void main(String[] args) {
    try {
        
        Scanner leitura = new Scanner(System.in);
        System.out.println("Digite o nome do filme para busca: ");
        String busca = leitura.nextLine();

        String chave ="
        ";
        String endereco = "https://www.omdbapi.com/?t="+busca+"&apikey="+chave;
        // URL da API que você deseja acessar
        URL url = new URL(endereco);
        
        // Abre uma conexão HttpURLConnection
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        
        // Define o método da requisição (GET, POST, PUT, DELETE, etc.)
        connection.setRequestMethod("GET");
        
        // Faz a requisição e obtém a resposta
        int responseCode = connection.getResponseCode();
        
        // Verifica se a requisição foi bem-sucedida (código de resposta 200)
        if (responseCode == HttpURLConnection.HTTP_OK) {
            StringBuilder response;
            try ( // Lê a resposta da API
                    BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
                String inputLine;
                response = new StringBuilder();
                while ((inputLine = in.readLine()) != null) {
                    response.append(inputLine);
                }
            }
            
            // Exibe a resposta
            System.out.println(response.toString());
        } else {
            System.out.println("Falha na requisição: " + responseCode);
        }
        
        // Fecha a conexão
        connection.disconnect();
        
    } catch (IOException e) {
    }
}

}

Oi, Alires!

Que ótimo!!! :)

Depois só não esqueça de encerrar esse tópico para não impactar na visibilidade dos demais tópicos de colegas que seguem com dúvidas e também não impactar no atendimento a esses, ok?

Boa semana e bons estudos!!!!

Ah, vou aproveitar para fazer umas considerações.

  1. Remover a leitura do bloco try, pois estamos lidando com recursos que podem gerar exceções. Se colocamos a leitura dentro do bloco try, poderíamos encontrar uma situação em que o Scanner não foi criado com sucesso (por exemplo, se houver um problema com System.in), o que causaria uma exceção e o fluxo do programa passaria diretamente para o bloco catch, pulando qualquer código após a tentativa de criação do Scanner. Queremos garantir que o recurso Scanner seja fechado, independentemente de ocorrer uma exceção ou não. Portanto, colocamos a abertura do Scanner fora do bloco try, para garantir que o recurso seja criado independentemente. Aliás, é intencional deixar a leitura no bloco try? Se for, deleta o que eu disse (rs);

  2. Ao usar recursos como Scanner e BufferedReader, é uma boa prática fechá-los após o uso para liberar os recursos. Use um bloco finally para garantir que o Scanner seja sempre fechado após o uso, mesmo se ocorrer uma exceção durante a execução do código dentro do bloco try;

  3. Você capturou a exceção IOException, o que é bom para lidar com erros de I/O. Mas o bloco catch está vazio, o que significa que ele não trata nenhuma exceção específica. Assim, qualquer erro durante a execução do bloco try será capturado, mas não tratado de forma apropriada. Ao adicionar um bloco catch (IOException e), estamos especificando que queremos capturar apenas exceções do tipo IOException, que são as exceções relacionadas à entrada e saída de dados, como problemas de conexão com a internet, problemas ao ler/escrever arquivos, etc. É uma boa prática adicionar alguma lógica para lidar com exceções de forma mais informativa, como imprimir uma mensagem de erro ao usuário.

. . . .

Se esta resposta te ajudou, favor marcar como solucionado ✓