JAX-RS response.getEntity returns 在 post 之后为空

JAX-RS response.getEntity returns null after post

当我调用下一个代码时:

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不为空。

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

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

你需要使用response.readEntity(Your.class)来return你想要的类型的实例。例如

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

请注意,实际上需要一个提供程序来处理 Java 类型和 application/json 的读取。如果您使用球衣和 JSON-P API,请参阅 this. Also for general information about providers, see