1
resposta

[PROJETO] Projeto CEP

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

Muito bem feito! Parabéns"