如何使用@RequestMapping将自定义HTTP方法/动词添加到Spring-MVC

Satu0King:

我需要将自定义HTTP方法/动词添加到URI。我需要这样的东西:

@RequestMapping(value = "/device", method = "CAPTURE")

简而言之,此请求需要工作 curl -X CAPTURE http://localhost:4591/device

据我了解,@ RequestMapping仅接受标准化的HTTP方法,因此我必须使用哪些选项来实现此目的。

克里斯蒂亚诺·邦巴扎(Cristiano Bombazar):

你不能那样做。您必须使用标准化的HTTP方法。您可以创建不使用HTTP方法的自定义终结点,因此,每个请求都将被接受。(当然,遵循一些规则,但这不是我猜到的问题的主题)

@RequestMapping(value = "/device")

或者,您可以使用HTTP标头来允许/阻止请求。您只需要在应用程序中创建一个过滤器。像这样:

@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CorsFilter implements Filter {


    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest request = (HttpServletRequest) req;

        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With, CAPTURE");

        if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
            response.setStatus(HttpServletResponse.SC_OK);
        } else {
            String captureHeader = request.getHeader("CAPTURE");
            if (StringUtils.isEmpty(captureHeader)) {
                response.setStatus(HttpServletResponse.SC_BAD_REQUEST);                   
            }else{
               chain.doFilter(req, res); 
            }
        }
    }

    @Override
    public void init(FilterConfig filterConfig) {
    }

    @Override
    public void destroy() {
    }

}

我想使用过滤器,您将能够做您想做的事情。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将自定义css文件添加到asp.net mvc中?

如何将自定义字段添加到Json结果-ASP.NET MVC

如何自定义安全注释添加到Spring MVC的控制器方法

是否有将自定义Javascript添加到ASP.NET MVC 5页面的正确方法?

将自定义HTML帮助器添加到MVC项目

将自定义文本添加到MVC 5的下拉列表中

将自定义类添加到ASP.NET MVC 4中的单选按钮

在MVC 4中将自定义类添加到DropDownList

用户登录后将自定义属性添加到ASP.NET MVC身份

如何使用“必需” htmlattribute将自定义错误消息添加到mvc 5 razor视图文本输入编辑器

在ASP.NET MVC 5中将自定义角色添加到Windows角色

是否可以将自定义视图添加到您无法访问项目文件的现有MVC站点?

使用 MVC 操作过滤器将自定义参数添加到每个查询字符串中

Spring MVC中的自定义HTTP方法

将 AspNetUsers 表中的自定义属性添加到 .net mvc 中的 /Manage/Index

MVC体系结构-将具有自定义逻辑的字段添加到模型

如何使用<String,Integer>将自定义标头添加到Spring Boot HttpHeaders?

Spring MVC - 向所有 HTTP 响应添加自定义 CSRF 标头

将自定义方法添加到 Lombok @Builder

将自定义方法添加到JButton类

已使用自定义成员资格提供程序将外部登录添加到现有MVC5项目

HTTP 400的Spring MVC自定义消息

如何在Asp.Net-MVC中添加自定义HTTP标头

如何将自定义HTTP标头添加到Chrome自定义标签?

如何将自定义ApplicationContextInitializer添加到Spring Boot应用程序?

向Rails 4 MVC添加自定义方法

将自定义分析器添加到使用spring构建的索引的基础

使用Spring DI将自定义对话框添加到Javafx

如何将自定义方法添加到ReasonReact组件?