zoukankan      html  css  js  c++  java
  • Spring Data Rest 支持Put请求

      最近在用 Spring Data Rest 写WebApi 遇到Put请求后报415 Mieda Type 的错误,GG了下 找到个解决办法 ,下面是针对Put请求的过滤。




    1
    public class HttpPutRestfulContentFilter extends OncePerRequestFilter { 2 3 private Charset charset = Charset.forName("UTF-8"); 4 private final String method="PUT"; 5 6 @Override 7 protected void doFilterInternal(final HttpServletRequest request, HttpServletResponse response, 8 FilterChain filterChain) throws ServletException, IOException { 9 10 if (this.method.equals(request.getMethod())) { 11 HttpInputMessage inputMessage = new ServletServerHttpRequest(request) { 12 @Override 13 public InputStream getBody() throws IOException { 14 return request.getInputStream(); 15 } 16 }; 17 18 HttpServletRequest wrapper = new HttpMethodRequestWrapper(request, this.method); 19 filterChain.doFilter(wrapper, response); 20 } 21 else { 22 filterChain.doFilter(request, response); 23 } 24 } 25 26 private static class HttpMethodRequestWrapper extends HttpServletRequestWrapper { 27 28 private final String method; 29 30 public HttpMethodRequestWrapper(HttpServletRequest request, String method) { 31 super(request); 32 this.method = method; 33 } 34 35 @Override 36 public String getMethod() { 37 return this.method; 38 } 39 } 40 }

      需要在web.xml中添加这个自定义过滤 

     <!--解决使用PUT请求接收不到参数的问题 -->
        <filter>
            <filter-name>HttpMethodFilter</filter-name>
            <filter-class>org.tccsdk.core.code.filter.HttpPutRestfulContentFilter</filter-class>
        </filter>
    
        <filter-mapping>
            <filter-name>HttpMethodFilter</filter-name>
            <servlet-name>api</servlet-name>
        </filter-mapping>
    
        <!-- Spring child -->
        <servlet>
            <servlet-name>api</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>api</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
  • 相关阅读:
    判断无向图G是否连通
    图的深度优先搜索与广度优先搜索
    整数变换问题
    按层次遍历二叉树
    交叉链表
    二元查找树转换成一个排序的双向链表
    简单计算器的实现
    二叉树宽度的计算
    BMP文件的读取与显示
    约瑟夫环问题
  • 原文地址:https://www.cnblogs.com/zhuwenjun/p/3756639.html
Copyright © 2011-2022 走看看