java - Spring MVC 和 X-HTTP-Method-Override 参数

标签 java spring http spring-mvc

我正在使用 Spring MVC,我有一个更新用户配置文件的功能:

@RequestMapping(value = "/{userName}" + EndPoints.USER_PROFILE,
    method = RequestMethod.PUT)
public @ResponseBody ResponseEntity<?> updateUserProfile(
    @PathVariable String userName, @RequestBody UserProfileDto userProfileDto) {
    // Process update user's profile
} 

我已经开始使用 JMeter,出于某种原因,他们在发送带有正文的 PUT 请求时遇到问题(在请求正文中或使用请求参数 hack)。

我知道在 Jersey 中你可以添加一个过滤器来处理 X-HTTP-Method-Override 请求参数,这样你就可以发送一个 POST 请求并使用 header 参数覆盖它。

在 Spring MVC 中有什么方法可以做到这一点吗?

谢谢!

最佳答案

Spring MVC 有 HiddenHttpMethodFilter它允许您包含一个请求参数 (_method) 来覆盖 http 方法。您只需将过滤器添加到 web.xml 中的过滤器链中。

我不知道使用 X-HTTP-Method-Override header 的现成解决方案,但您可以创建一个类似于 HiddenHttpMethodFilter 的过滤器 自己使用 header 更改值而不是请求参数。

关于java - Spring MVC 和 X-HTTP-Method-Override 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365660/

相关文章:

java - 我如何使用 jvm type -server 测试我的程序

java - 如何在 Google 应用引擎中设置 Unicode?

java - Netbeans 7.3 的 RTF 副本

java - 通过spring AOP + Aspectj进行异常处理

javascript - 页面将#link 添加到元素错误

java - 其他 Maven 源文件夹,例如 src/main/javascript 或 src/main/css?

java - JDBCTemplate 检索由 LAST_INSERT_ID() mySQL 技巧设置的值的问题

java - 是否可以在第三方类上切入点以及如何切入?

.net - ASP.Net https 与 http

c# - Azure Function Http Trigger 验证正文数据