Spring 区分@PostMapping、@GetMapping或@RequestMapping中的不同值

Spring 区分@PostMapping、@GetMapping或@RequestMapping中的不同值,spring,spring-mvc,Spring,Spring Mvc,在spring boot中,如何区分post请求来自“/weblogin”或“/mobilelogin” 在login()方法中 您可以使用该属性 @PostMapping(value = { "/weblogin", "/mobilelogin" }) @ResponseStatus(HttpStatus.OK) public AccessTokenResponseModel login() { // need to distinguish "/weblogin" or "/mobilelog

在spring boot中,如何区分post请求来自“/weblogin”或“/mobilelogin” 在login()方法中

您可以使用该属性

@PostMapping(value = { "/weblogin", "/mobilelogin" })
@ResponseStatus(HttpStatus.OK)
public AccessTokenResponseModel login() { // need to distinguish "/weblogin" or "/mobilelogin" }

我可以问一下,为什么不为另一个URI声明一个额外的方法,让它调用服务呢?我认为这比在Controllerb中检测URI更简单,因为“/weblogin”和“/mobilelogin”具有相同的业务逻辑,但webtoken和mobiletoken不同。旨在避免代码冗余。然后您应该获得相应的令牌,然后确定从何处接收请求。从您的代码来看,您似乎试图区分登录和桌面或移动浏览器。然后,您应该看看用户代理header@SangamBelose在代码中区分url应该是最好的方法,如下面的响应。根据我的经验,用户代理可以由用户手动编辑,所以我认为这不是最好的方法。还是谢谢你,兄弟
@PostMapping(value = { "/weblogin", "/mobilelogin" })
@ResponseStatus(HttpStatus.OK)
public AccessTokenResponseModel login(HttpServletRequest httpRequest) {
   final String requestMapping = ( String ) httpRequest.getAttribute( HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE );
   final boolean isMobileLogin = requestMapping.contains("/mobilelogin");

   ....
}