gpt4 book ai didi

java - 带有 equals 的 Spring @RequestMapping header

转载 作者:行者123 更新时间:2023-11-30 07:42:47 25 4
gpt4 key购买 nike

我想使用带有 header 属性的 Springs @RequestMapping 来检测值为 application/json;version=1.*Accept header 。计划为版本 2 映射另一个方法,其值为 application/json;version=2.*

Spring 似乎忽略了版本值。我猜它将等号视为另一个 header 属性。

有办法解决这个问题吗?

旁注:

  1. 我无法更新 Spring 版本以支持 consumes 属性
  2. 我无法更改请求 header 的格式

最佳答案

似乎 spring requestmapping 忽略了媒体类型参数。您可以通过手动将请求路由到您的首选端点来解决此问题。

@RequestMapping(value = "/", headers = "Accept=application/json")
@ResponseBody
String request(@RequestHeader HttpHeaders headers){
for(MediaType mediaType : headers.getAccept()){
if(mediaType.isCompatibleWith(MediaType.APPLICATION_JSON)){
if(mediaType.getParameter("version").startsWith("1.")){
return v1();
}else if(mediaType.getParameter("version").startsWith("2.")){
return v2();
}
}
}
return "error";
}

关于java - 带有 equals 的 Spring @RequestMapping header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34425316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com