我的 Java Rest 资源文件中有 2 个方法,它们具有相同的 @Path uri,但 @products 不同。代码如下:
@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 休息客户端测试它时,我总是得到 JSON 输出!! 有人可以解释一下为什么吗?如果我想获得 xml 和 json 输出,该怎么办? 我尝试将内容类型更改为 application/xml..但我总是得到 json!!
最佳答案
Content-Type
用于发送数据的类型,可以是客户端作为请求 header 发送,也可以是服务器作为响应 header 发送。因此,作为客户端发送 header 是无用的,因为您没有发送任何数据。对于客户端来说,当它想告诉服务器它想要什么类型时,它使用 Accept: <media-type>
header 。
当没有Accept
时 header 设置,通常默认为*/*
根据您的情况选择哪种方法供您选择。
关于java - Rest资源文件中的两个方法具有相同的@Path但不同的mediaType输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34186326/