Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro ao cadastrar abrigos

Estou recebendo o seguinte codigo ao tentar cadastrar um abrigo: {"timestamp":"2024-01-15T19:01:41.261+00:00","status":400,"error":"Bad Request","path":"/abrigos"}

Código:

public static HttpResponse<String> dispararRequisicaoGet(String uri) throws IOException, InterruptedException {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(uri))
            .method("GET", HttpRequest.BodyPublishers.noBody())
            .build();
    return client.send(request, HttpResponse.BodyHandlers.ofString());
}

public static HttpResponse<String> dispararRequisicaoPost(String uri, Object object) throws IOException, InterruptedException {
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(uri))
            .header("Content-Type", "application/json")
            .method("POST", HttpRequest.BodyPublishers.ofString(new Gson().toJson(object)))
            .build();

    return client.send(request, HttpResponse.BodyHandlers.ofString());
}

}

1 resposta
solução!

Olá, Matheus! Tudo bem?

Pelo que entendi, você está tentando fazer uma requisição POST para cadastrar um abrigo, mas está recebendo um erro 400 (Bad Request). Isso geralmente indica que há algo errado com a requisição que você está enviando.

No seu código, você está convertendo seu objeto para JSON usando o Gson e enviando no corpo da requisição. Isso parece estar correto, mas o problema pode estar na estrutura do objeto que você está tentando enviar.

Aqui estão algumas coisas que você pode verificar:

  1. Verifique se o objeto que você está tentando enviar corresponde ao que o servidor espera. Por exemplo, se o servidor espera um objeto com campos nome, telefone e email, certifique-se de que o objeto que você está enviando também tem esses campos.

  2. Verifique se todos os campos necessários estão presentes e se os tipos de dados estão corretos. Por exemplo, se o servidor espera que o telefone seja uma string, mas você está enviando como um número, isso pode causar um erro.

  3. Tente imprimir o JSON que você está enviando para ver se parece correto. Você pode fazer isso adicionando uma linha de código antes de enviar a requisição, algo como: System.out.println(new Gson().toJson(object));

  4. Verifique se o servidor está esperando algum cabeçalho adicional que você não está enviando. Por exemplo, alguns servidores podem exigir um token de autenticação no cabeçalho da requisição.

Se tudo parecer correto e você ainda estiver recebendo o erro, pode ser útil ver se há mais informações sobre o erro no lado do servidor. Se você tem acesso aos logs do servidor, eles podem conter mais detalhes sobre o que está errado com a requisição.

Espero ter ajudado e bons estudos!