Desafio2. Crie um programa Java que utiliza as classes HttpClient, HttpRequest e HttpResponse para fazer uma consulta à API CoinGecko e exiba a cotação atual de uma criptomoeda escolhida pelo usuário.
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;
import static java.lang.System.exit;
public class ValorCriptoMoeda {
private String criptoNome;
Scanner sc = new Scanner(System.in);
public ValorCriptoMoeda(String criptoNome){
this.criptoNome = criptoNome;
}
@Override
public String toString() {
return super.toString();
}
//entrada de dados
public void entrarInformacao() throws IOException, InterruptedException {
int opcao = 1;
System.out.println("===== WELCOME TO - ULTIMATE COIN SEARCH =====");
do {
System.out.println( """
Selecione a opçção abaixo:
1 - Cotação de Moedas em Dólar(USD)
2 - Cotação de Moedas em Real(BRL)
3 - SAIR
""");
int selecao = sc.nextInt();
switch (selecao) {
case 1:
System.out.println("===== COTAÇÃO EM DÓLAR(USD) =====");
System.out.println("Insira o nome da criptomoeda: ");
this.setCriptoNome(sc.next());
coletarEmDolar();
break;
case 2:
System.out.println("===== COTAÇÃO EM REAL(BRL) =====");
System.out.println("Insira o nome da criptomoeda: ");
this.setCriptoNome(sc.next());
coletarEmReal();
break;
case 3:
System.out.println("Saindo do programa...");
exit(0);
break;
}
} while (opcao == 1);
}
//Coleta o valor em dolar
public void coletarEmDolar() throws IOException, InterruptedException {
String address ="https://api.coingecko.com/api/v3/simple/price?ids=" +
this.getCriptoNome().replace(" ", "+") + "&vs_currencies=usd";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(address))
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("===== SAÍDA DE DADOS =====");
System.out.println(response.body() + "\n");
}
//coleta o valor em Real
public void coletarEmReal() throws IOException, InterruptedException {
String address ="https://api.coingecko.com/api/v3/simple/price?ids=" +
this.getCriptoNome().replace(" ", "+") + "&vs_currencies=brl";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(address))
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("\n===== SAÍDA DE DADOS =====");
System.out.println(response.body() + "\n");
}
//Getters e Setters
public String getCriptoNome() {
return criptoNome;
}
public void setCriptoNome(String criptoNome) {
this.criptoNome = criptoNome;
}
}
import java.io.IOException;
public class Principal {
public static void main(String[] args) throws IOException, InterruptedException {
ValorCriptoMoeda valorCriptoMoeda = new ValorCriptoMoeda("");
valorCriptoMoeda.entrarInformacao();
}
}