2

有没有办法从客户端控制输出格式?

我有一堂课

@Produces(MediaType.TEXT_HTML)

我希望它在客户端请求时生成json 。

我可以逐字复制类,只替换@Path@Produces注释,但这看起来完全是浪费。

我想知道客户端是否可以将&content-type=application/json之类的内容附加到 URL 并让我的服务器使用 json 而不是 html 响应?

4

1 回答 1

9

您需要将资源注释为同时提供 HTML 和 JSON:

@Produces({MediaType.TEXT_HTML, MediaType.APPLICATION_JSON})

然后只需确保您已MessageBodyWriter注册实现来处理方法的返回类型。DropwizardJacksonMessageBodyProvider应该处理 JSON;如果您使用的是 Dropwizard 视图,ViewMessageBodyWriter则应处理其余部分。Jersey 将与客户端进行内容协商,前提是您的客户端application/json在请求的Accept标头中有。

于 2012-07-24T19:03:09.917 回答