package Desafio;
import java.io.IOException;
public class CEP {
public static void main(String[] args) throws IOException, InterruptedException {
EnderecoCEP consultarcep = new EnderecoCEP();
consultarcep.buscaCEP();
}
}
package Desafio;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.FileWriter;
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.ArrayList;
import java.util.List;
import java.util.Scanner;
public class EnderecoCEP {
public void buscaCEP() throws IOException {
Scanner scan = new Scanner(System.in);
List<Endereco> CEP = new ArrayList<>();
String json;
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.create();
try {
System.out.println("Digite o CEP: ");
String cep = scan.nextLine();
String cepFormatacao = cep.replace("-", "");
if (cepFormatacao.length() != 8) {
throw new CepInvalidoException();
}
String chaveapi = "http://viacep.com.br/ws/" + cepFormatacao + "/json/";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(chaveapi))
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
json = response.body();
System.out.println(json);
Endereco endereco = gson.fromJson(json, Endereco.class);
System.out.println(endereco);
CEP.add(endereco);
} catch (CepInvalidoException e) {
System.out.println(e.getMensagem());
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
FileWriter escrita = new FileWriter("CEP.Json");
escrita.write(gson.toJson(CEP));
escrita.close();
}
}
package Desafio;
public class CepInvalidoException extends RuntimeException {
private String mensagem = "Valor de CEP inválido. Insira 8 caracteres para consultar seu CEP";
public String getMensagem() {
return mensagem;
}
}
package Desafio;
public record Endereco(String cep, String logradouro, String bairro, String localidade, String uf) {
}