3
respostas

Erro ao cadastrar o pet: Rex {"timestamp":"2024-04-26T19:22:04.581+00:00","status":400,"error":"Bad Request","path":"/abrigos/1/pets"}

o código está igual o disponibilizado no git hub, eu verifiquei, mas ainda assim está dando esse erro no cadastro. ele vai ate dentro do while, e no fim, ao mandar a requisição POST, retorna já com o erro 400, e ai entra no if dando o erro, não consegui pegar o printStackTrace do erro, isso dificulta bastante saber onde exatamente esta o problema.

public void importarPetsDoAbrigo() throws IOException, InterruptedException {

    System.out.println("Digite o id ou nome do abrigo:");
    String idOuNome = new Scanner(System.in).nextLine();

    System.out.println("Digite o nome do arquivo CSV:");
    String nomeArquivo = new Scanner(System.in).nextLine();

    BufferedReader reader = null;
    try {
        reader = new BufferedReader(new FileReader(nomeArquivo));
    } catch (FileNotFoundException e) {
       // System.out.println("Erro ao carregar o arquivo: " + nomeArquivo);
        System.out.println("Arquivo não encontrado: " + nomeArquivo);
        e.printStackTrace();
        return;
    } catch (IOException e){
        System.out.println("Erro ao abrir arquivo: " + nomeArquivo);
        e.printStackTrace();
        return;
    }

    String line;
    while ((line = reader.readLine()) != null) {
        String[] campos = line.split(",");
        String tipo = campos[0];
        String nome = campos[1];
        String raca = campos[2];
        int idade = Integer.parseInt(campos[3]);
        String cor = campos[4];
        Float peso = Float.parseFloat(campos[5]);

        Pet pet = new Pet(tipo, nome, raca, idade, cor, peso);


        String uri = "http://localhost:8080/abrigos/" + idOuNome + "/pets";
        HttpResponse<String> response = client.dispararRequisicaoPost(uri, pet);
        int statusCode = response.statusCode();
        String responseBody = response.body();

        if (statusCode == 200) {
            System.out.println("Pet cadastrado com sucesso: " + nome);
        } else if (statusCode == 404) {
            System.out.println("Id ou nome do abrigo não encontado!");
            break;
        } else if (statusCode == 400 || statusCode == 500) {
            System.out.println("Erro ao cadastrar o pet: " + nome);
            System.out.println(responseBody);
            break;
        }

    }
    reader.close();
}
3 respostas

Também estou com este mesmo erro.

Eu tive o mesmo problema, pra resolver é só ir no arquivo pets.csv e alterar o "cachorro" por "CACHORRO" e o "gato" por "GATO". É porque na API ele espera um ENUM.

Funcionou! Muito Obrigado Lucas!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software