如何在返回用户定义的对象时设置内容长度

时间:2013-09-10 09:13:50

标签: java rest jersey content-length

我在tomcat上运行Jersey休息服务。我正在为休息调用返回一个Response对象,但有效负载的实体是我定义的类的对象列表。如何在此List

的响应头中设置content-length
    @Path("/somePath")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response myRestAPI(@CookieParam(value = "value") String cookieValue) {
        /*..
        * some business logic here
        */
        List<MyObject> myObjects = getMyObjectList();
        return Response.ok(myObjects).cookie(createCookie(value)).build();
    }

我打算将Response对象中的content-length头设置为

return Response.ok(myObjects).header("content-length", length).cookie(createCookie(value)).build();

如何找到列表的长度? 提前致谢

1 个答案:

答案 0 :(得分:0)

应自动包含Content-Length标头。在我的情况下使用RestEasy(不是Jersey)就是。

您能否确认不包含标题,例如使用curl或Firebug?

最后,只是为了100%确定:Content-Length是HTTP内容的长度(正文,请参阅here),而不是List.size()返回的列表大小。