java - Rest资源文件中的两个方法具有相同的@Path但不同的mediaType输出

标签 java web-services rest postman

我的 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/

相关文章:

objective-c - 我想知道是否需要在项目的某些文件中通知 URL 网络服务(我的应用程序访问的)

c# - 从我的 Web 服务读取 Http POST 正文内容? (.net 3.5)

java - 如何编写Json Web服务从Java中的数据库表中获取相应的数据

json - REST API 状态是整数还是字符串?

java - 在 2 个 REST 资源之间创建关系

java - 如何将具有多个参数的对象的单个参数添加到该对象的数组列表中的字符串中?

java - 创建太多线程有什么缺点吗?

java - 当我尝试在另一个 Activity 中的 ImageView 上显示图像时,应用程序崩溃

java - 如何将JDialog存储在JOptionPane创建的JDialog对象中

c# - WCF REST 服务中返回大文件的响应时间问题