0
respostas

[Projeto] Projeto final: Mecanismo De Busca

import java.io.IOException;
import java.util.Scanner;

public class Principal {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Digite um CEP para busca: ");
        String cep = scanner.nextLine();

        try {
            Endereco novoEndereco = BuscaCep.buscaCep(cep);
            System.out.println("Endereço encontrado:");
            System.out.println(novoEndereco);
            GeradorDeArquivo gerador = new GeradorDeArquivo();
            gerador.salvaJson(novoEndereco);
        } catch (RuntimeException e) {
            System.out.println(" Fializando aplicação " + e.getMessage());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        scanner.close();
    }
}

{}01001000.json { "cep": "01001-000", "logradouro": "Praça da Sé", "complemento": "lado ímpar", "bairro": "Sé", "localidade": "São Paulo", "uf": "SP" }

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

import java.io.FileWriter;
import java.io.IOException;

public class GeradorDeArquivo {

    public void salvaJson(Endereco endereco) throws IOException {
        Gson gson = new GsonBuilder() . setPrettyPrinting().create();
        FileWriter escrita = new FileWriter(endereco.cep() + " .json ");
        escrita.write(gson.toJson(endereco));
        escrita.close();

    }

}

import com.google.gson.Gson; import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse;

public class BuscaCep { public static Endereco buscaCep(String cep) { URI endereco = URI.create("https://viacep.com.br/ws/" + cep + "/json");

    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder()
            .uri(endereco)
            .build();

    HttpResponse<String> response;
    try {
        response = client.send(request, HttpResponse.BodyHandlers.ofString());
    } catch (IOException | InterruptedException e) {
        throw new RuntimeException("Não consegui obter esse endereço a partir desse CEP.");
    }

    String json = response.body();
    if (json.contains("\"erro\"")) {
        throw new RuntimeException("CEP não encontrado.");
    }

    return new Gson().fromJson(json, Endereco.class);
}

}

public record Endereco (String cep, String logradouro, String complemento, String bairro,
       String localidade, String uf) {

}