Endereco
int cep;
String logradouro;
String complemento;
String unidade;
String bairro;
String localidade;
String siglaDoEstado;
String estado;
String regiao;
int ibge;
int ddd;
int siafi;
Boolean erro;
public Endereco(){}
public Endereco(EnderecoRecord e){
this.erro=e.erro();
if (erro){
throw new CepInvalidoExeption("o cep é invalido");
}
//01001000
//99999999
this.cep=Integer.valueOf(e.cep().replaceAll("-",""));
this.logradouro=e.logradouro();
this.complemento=e.complemento();
this.unidade=e.unidade();
this.bairro=e.bairro();
this.localidade=e.localidade();
this.siglaDoEstado=e.uf();
this.estado=e.estado();
this.regiao=e.regiao();
this.ibge=Integer.valueOf(e.ibge());
this.ddd=Integer.valueOf(e.ddd());
this.siafi=Integer.valueOf(e.siafi());
}
@Override
public String toString() {
return "Endereco{" +
"cep=" + cep +
", logradouro='" + logradouro + '\'' +
", complemento='" + complemento + '\'' +
", unidade='" + unidade + '\'' +
", bairro='" + bairro + '\'' +
", localidade='" + localidade + '\'' +
", siglaDoEstado='" + siglaDoEstado + '\'' +
", estado='" + estado + '\'' +
", regiao='" + regiao + '\'' +
", ibge=" + ibge +
", ddd=" + ddd +
", siafi=" + siafi+
'}';
}
Connecta
public Connecta(String cep) throws IOException, InterruptedException {
Gson gson=new GsonBuilder()
.setPrettyPrinting().create();
try {
String endereco = "https://viacep.com.br/ws/" + cep + "/json/";
//01001000
//99999999
HttpClient cliente = HttpClient.newHttpClient();
System.out.println("endereco:" + endereco);
HttpRequest requisicao = HttpRequest.newBuilder().uri(URI.create(endereco)).build();
HttpResponse<String> resposta = cliente.send(requisicao, HttpResponse.BodyHandlers.ofString());
if (resposta.statusCode() == 400) {
throw new CepInvalidoExeption("o numero de cep é invalido");
}
String json = resposta.body();
System.out.println(json);
EnderecoRecord enderecoGravado = gson.fromJson(json, EnderecoRecord.class);
System.out.println(enderecoGravado);
Endereco endereco1 = new Endereco(enderecoGravado);
System.out.println(endereco1);
FileWriter escrita=new FileWriter("enderecos.json");
escrita.write(gson.toJson(endereco1));
escrita.close();
}catch (CepInvalidoExeption e){
System.out.println(e.getMensagem());
}
}
Main
System.out.println("digite o cep: ");
Scanner scanner = new Scanner(System.in);
String cep="";
List<Endereco> enderecos = new ArrayList<>();
while (!cep.equalsIgnoreCase("sair")){
cep = scanner.next();
if (cep.equals("sair")){
break;
}
Connecta connecta = new Connecta(cep);
}