【问题标题】:Two methods in Rest resource file with same @Path but different mediaType outputRest资源文件中具有相同@Path但mediaType输出不同的两种方法
【发布时间】:2016-03-15 04:04:30
【问题描述】:

我的 Java Rest 资源文件中有 2 个方法具有相同的 @Path uri 但不同的 @produces。下面的代码:

@GET
@Path("/messages")
@Produces(MediaType.APPLICATION_XML)
 public List<Message> getAllMessages() {


    return new ArrayList<Message>(service.getMessageMap().values());
}

@GET
@Path("/messages")
@Produces(MediaType.APPLICATION_JSON)
 public List<Message> getAllMessagesJSON() {


    return new ArrayList<Message>(service.getMessageMap().values());
}

当我使用 POSTMAN REST 客户端对其进行测试时,我总是得到 JSON 输出!! 有人可以解释为什么吗?如果我想获得 xml 和 json 输出,该怎么办? 我尝试将内容类型更改为 application/xml..但我总是得到 json!!

【问题讨论】:

    标签: java web-services rest postman


    【解决方案1】:

    Content-Type 用于发送的数据类型,客户端作为 request 标头或服务器作为 response 标头。因此,您作为客户端发送标头是无用的,因为您没有发送任何数据。对于客户端,当它想告诉服务器它想要什么类型时,它使用Accept: &lt;media-type&gt; 标头。

    当没有设置 Accept 标头时,它通常默认为 */* 留待您选择哪种方法适合您的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-15
      • 2013-12-21
      相关资源
      最近更新 更多