JAX-RS response.getEntity在post之后返​​回null

时间:2015-08-19 19:48:07

标签: java post jax-rs

当我调用下一个代码时:

Response response = target.request(MediaType.APPLICATION_JSON_TYPE)
                .post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE));

response.getEntity();

response.getEntity()始终为空。

但是当我调用时:

JsonObject json = target.request(MediaType.APPLICATION_JSON_TYPE)
                .post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE), JsonObject.class);

变量 json 不为空。

我需要使用第一个变体,因为我需要检查响应状态。

为什么第一个代码不起作用?我怎样才能获得状态代码呢?

1 个答案:

答案 0 :(得分:6)

您需要使用response.readEntity(Your.class)来返回所需类型的实例。例如

String rawJson = response.readEntity(String.class);
// or
JsonObject jsonObject = response.readEntity(JsonObject.class);

请注意,实际上需要一个提供程序来处理读取Java类型和application / json。如果您使用的是Jersey和JSON-P API,请参阅this。有关提供商的一般信息,请参阅this