如何向JAXRS添加Content-Length

时间:2012-08-01 04:25:14

标签: java json jax-rs

在我的回复中,我想将JSON的大小添加到标题中,以下是我尝试过但不起作用的内容(响应为空):

return Response.ok(OBJECT_MAPPER.writeValueAsString(myObject), MediaType.APPLICATION_JSON).header(HttpHeaders.CONTENT_LENGTH), 20).build();

正如您所看到的,我很难编码长度,但如果我可以使用API​​来做这件事会很棒。

解决方案 那么,字节大小可以如下返回,具体取决于编码。下面的代码可以在不实现MessageBodyWriter接口的情况下完成:

String str = OBJECT_MAPPER.writeValueAsString(myObject);
return Response.ok(str , MediaType.APPLICATION_JSON).header(HttpHeaders.CONTENT_LENGTH), str.getBytes("UTF-8").length)).build();

1 个答案:

答案 0 :(得分:1)

实施MessageBodyWriter接口:

String str = OBJECT_MAPPER.writeValueAsString(myObject);
return Response.ok(str , MediaType.APPLICATION_JSON).header(HttpHeaders.CONTENT_LENGTH), str.getBytes("UTF-8").length)).build();