1
resposta

desafio CEP

Esse foi como eu fiz sozinha, depois assisti os videos e separei por classes diferentes.

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

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 ConsultaCEP {
    public ConsultaCEP() throws IOException, InterruptedException {
    }

    public class Endereco {
        public  String cep;
        public  String logradouro;
        public  String complemento;
        public  String bairro;
        public  String localidade;
        public  String uf;
    }

    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner leitura = new Scanner(System.in);
        System.out.println("\n--------Site de busca via CEP: -----------");
        System.out.println("\nDigite o CEP para a busca (somente números):");
        String cep = leitura.nextLine();

        Gson gson = new GsonBuilder()
                .setPrettyPrinting()
                .create();

        String url = "http://viacep.com.br/ws/" +cep+ "/json/";

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .build();
        HttpResponse<String> response = client
                .send(request, HttpResponse.BodyHandlers.ofString());

        Endereco endereco = gson.fromJson(response.body(), Endereco.class);

        System.out.println("Logradouro: "+endereco.logradouro);
        System.out.println("Bairro: "+endereco.bairro);
        System.out.println("Cidade: "+endereco.localidade);
        System.out.println("Estado: "+endereco.uf);
    }
}
1 resposta

Oii, Renata! Como vai?

Seu esforço em montar o código sozinha antes de assistir às aulas chamou atenção.

Separar por classes diferentes é uma prática que melhora a organização e a manutenção do projeto, ótimo passo.

Uma dica interessante para o futuro é usar o método toString() para facilitar a exibição dos dados da classe Endereco. Veja este exemplo:


@Override
public String toString() {
    return "Logradouro: " + logradouro + "\nBairro: " + bairro + 
           "\nCidade: " + localidade + "\nEstado: " + uf;
}

Esse método imprime o conteúdo de forma organizada quando você usar System.out.println(endereco);.

Conteúdos relacionados
Alura

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