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
当我调用下一个代码时:
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