有没有办法从客户端控制输出格式?
我有一堂课
@Produces(MediaType.TEXT_HTML)
我希望它在客户端请求时生成json 。
我可以逐字复制类,只替换@Path和@Produces注释,但这看起来完全是浪费。
我想知道客户端是否可以将&content-type=application/json之类的内容附加到 URL 并让我的服务器使用 json 而不是 html 响应?
有没有办法从客户端控制输出格式?
我有一堂课
@Produces(MediaType.TEXT_HTML)
我希望它在客户端请求时生成json 。
我可以逐字复制类,只替换@Path和@Produces注释,但这看起来完全是浪费。
我想知道客户端是否可以将&content-type=application/json之类的内容附加到 URL 并让我的服务器使用 json 而不是 html 响应?
您需要将资源注释为同时提供 HTML 和 JSON:
@Produces({MediaType.TEXT_HTML, MediaType.APPLICATION_JSON})
然后只需确保您已MessageBodyWriter
注册实现来处理方法的返回类型。DropwizardJacksonMessageBodyProvider
应该处理 JSON;如果您使用的是 Dropwizard 视图,ViewMessageBodyWriter
则应处理其余部分。Jersey 将与客户端进行内容协商,前提是您的客户端application/json
在请求的Accept
标头中有。