1
resposta

EXERCÍCIO 2 COM LOOP

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 ConsultaCotacaoCripto {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner consulta = new Scanner(System.in);
        
        while (true) {
            System.out.println("Digite a criptomoeda que você quer obter a cotação (ou digite 'parar' para sair):");
            var nomeCripto = consulta.nextLine();

            if (nomeCripto.equalsIgnoreCase("parar")) {
                System.out.println("Saindo do programa...");
                break;
            }

            String endereco = "https://api.coingecko.com/api/v3/simple/price?vs_currencies=usd&ids=" + nomeCripto + "&key=aquiTemAMinhaKeyDaApi";

            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());
        }
    }
}
1 resposta

Olá, Pedro! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o HttpClient para realizar requisições com Java, utilizou muito bem o HttpResponse.BodyHandlers.ofString para capturar o retorno e ainda compreendeu a importância do Scanner para interagir com o usuário em tempo real.

Uma dica interessante para o futuro é aplicar o JSONObject da biblioteca org.json para tratar a resposta da API de forma estruturada. Assim:

import org.json.JSONObject;

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
JSONObject json = new JSONObject(response.body());

double preco = json.getJSONObject(nomeCripto).getDouble("usd");
System.out.println("Cotação atual de " + nomeCripto + ": $" + preco);

Isso faz com que você consiga acessar diretamente os valores retornados pela API sem precisar manipular a string manualmente.

Conteúdos relacionados

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!