Java 在SpringAPI中是否有更好的方法接受基于标题的内容协商?

Java 在SpringAPI中是否有更好的方法接受基于标题的内容协商?,java,spring,rest,content-negotiation,Java,Spring,Rest,Content Negotiation,我正在使用内容协商通过更改accept头为同一RESTAPI函数定义多个响应 Accept标头:应用程序/json,应以json形式给出响应(由另一个服务使用) Accept header:应用程序/octet流,应下载与具有自定义文件扩展名的文件相同的json响应,供UI使用 目前,当我在Accept头中传递应用程序/八位字节流时,我得到了406 这是正确的方法吗?或者我应该将函数拆分为2,还是使用查询参数更好 目前,当我在Accept头中传递应用程序/八位字节流时,我得到了406 可能,您的

我正在使用内容协商通过更改accept头为同一RESTAPI函数定义多个响应

  • Accept标头:应用程序/json,应以json形式给出响应(由另一个服务使用)
  • Accept header:应用程序/octet流,应下载与具有自定义文件扩展名的文件相同的json响应,供UI使用
  • 目前,当我在Accept头中传递应用程序/八位字节流时,我得到了406

    这是正确的方法吗?或者我应该将函数拆分为2,还是使用查询参数更好

    目前,当我在Accept头中传递应用程序/八位字节流时,我得到了406

    可能,您的端点正在使用某种注释

    类似于:
    @RequestMapping
    或(@GetMapping或@PostMapping,等等)。。。那么,该注释包含一个
    生成
    属性。。。在您的情况下,该属性应该具有端点预期生成的类型:
    [application/json,application/octet-stream]

    注意:客户端应该向您的端点指出他想要的格式。。。为此,客户端应使用
    Accept
    http头指定格式

    这是正确的方法吗?或者我应该将函数拆分为2,还是使用查询参数更好

    对我来说,这是正确的方法,因为您的API更简单,并且您正在使用标准建议的机制

    目前,当我在Accept头中传递应用程序/八位字节流时,我得到了406

    可能,您的端点正在使用某种注释

    类似于:
    @RequestMapping
    或(@GetMapping或@PostMapping,等等)。。。那么,该注释包含一个
    生成
    属性。。。在您的情况下,该属性应该具有端点预期生成的类型:
    [application/json,application/octet-stream]

    注意:客户端应该向您的端点指出他想要的格式。。。为此,客户端应使用
    Accept
    http头指定格式

    这是正确的方法吗?或者我应该将函数拆分为2,还是使用查询参数更好


    对我来说,这是正确的方法,因为您的API更简单,并且您使用的是标准建议的机制…

    一般来说,
    Accept
    头就是HTTP传递发送给接收器的有效负载表示格式的方式。然而,Spring也提供了一种方法来实现这一点,然而,我不太喜欢这种方法,因为一个行为良好的客户端应该支持
    Accept
    头,但可能不支持扩展头一般来说,
    Accept
    头只是HTTP将有效负载的表示格式发送给接收方的方式。然而,Spring也提供了一种方法来实现这一点,然而,我不太喜欢这种方法,因为行为良好的客户端应该支持
    Accept
    头,但可能不支持扩展头