4
respostas

Jersey 2.26 Client Post JSON Bad Request

Boa Tarde, estou tentando fazer um cliente que envie um json via POST, so que sempre retorna 400-Bad Request

@XmlRootElement(name = "category")
@XmlAccessorType(XmlAccessType.FIELD)
public class Category implements Serializable {

    private static final long serialVersionUID = -7270841066593156958L;

    private String code;
    private String name;
...
}

Classe do Cliente

Client c = ClientBuilder.newClient();
        c.register(LoggingFilter.class);

        Builder builder = c.target("http://api.skyhub.com.br").path("/categories").request(MediaType.APPLICATION_JSON);

        builder.accept(MediaType.APPLICATION_JSON);

        usuarioB2W.autenticar(builder);

        Response response = builder.post(Entity.entity(category, MediaType.APPLICATION_JSON));

Obrigado pela atencão

4 respostas

Oi Arthur, tudo bem ?

Será que você está mandando o token de autorização ?

Opa, Valeu pela ajuda.. Sim, estou mandando na linha "usuarioB2W.autenticar(builder);" se eu tiro, da outro erro 401 não autorizado, a lista também está funcionando!

É que 400 geralmente é que estamos mandando algo que o servidor não estava esperando. Precisaria entender mais sobre como está indo seu request e ver se é o que a sua api está esperando.

O Exemplo que Tenho no site é esse:

curl --request POST \
  --url https://api.skyhub.com.br/categories \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-accountmanager-key: foo' \
  --header 'x-api-key: YOUR API KEY HERE' \
  --header 'x-user-email: MUDAR@SEU_EMAIL.COM' \
  --data '{"category":{"code":"category001","name":"eletrónicos > celulares > fone de ouvido"}}'