我的Java Rest资源文件中有两个方法,它们具有相同的@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休息客户端测试时,我总是得到JSON输出!! 有人可以解释为什么?如果我想获得xml以及json输出,该怎么办? 我尝试将内容类型更改为application / xml ..但我总是得到json !!
答案 0 :(得分:2)
Content-Type
用于发送的数据类型,由客户端作为请求标头发送,或由服务器作为响应标头发送。所以你作为客户端发送标题是没用的,因为你没有发送任何数据。对于客户端,当它想要告诉服务器它想要什么类型时,它使用Accept: <media-type>
标头。
如果没有设置Accept
标头,则通常默认为*/*
,以便在您的情况下选择哪种方法。