我们怎样才能调用返回(@Produces)不同格式的@Path?

时间:2016-05-12 08:25:07

标签: java rest jax-rs

我有两条路径:

   @Path("Rectangle")
   @GET
   @Produces("application/xml")
   @Consumes("application/xml")

和,

   @Path("Rectangle")
   @GET
   @Produces("application/json")
   @Consumes("application/xml")

当我在localhost上点击我的API时,我总是得到XML响应。我需要做什么才能获得相同@Path的JSON响应?

1 个答案:

答案 0 :(得分:4)

根据docs,您可以为同一个终点指定多个内容类型

@Produces({"application/xml", "application/json"})

并且基于请求标头Accept,响应将具有最接受的内容类型

所以,你需要一个方法,它看起来应该是这样的

@Path("Rectangle")
@GET
@Produces({"application/xml", "application/json"})
@Consumes("application/xml")

现在客户端需要使用他们想要接收的内容类型发送标头Accept,例如:

Accept: application/xml

这将导致响应标头“content-type”为content-type: application/xml

您还可以使用Accept标头格式化您的回复