zoukankan      html  css  js  c++  java
  • 【spring boot】在自定义拦截器中从request中获取json字符串

    又这样的需求,需要在自定义的拦截器中获取request中的数据,想获取到的是JSON字符串

    那需要在拦截器中写这样一个方法

    public static String getOpenApiRequestData(HttpServletRequest request){
            try {
    
                int contentLength = request.getContentLength();
                if (contentLength < 0) {
                    return null;
                }
                byte buffer[] = new byte[contentLength];
                for (int i = 0; i < contentLength;) {
    
                    int readlen = request.getInputStream().read(buffer, i, contentLength - i);
                    if (readlen == -1) {
                        break;
                    }
                    i += readlen;
                }
    
                String charEncoding = request.getCharacterEncoding();
                if (charEncoding == null) {
                    charEncoding = "UTF-8";
                }
                return new String(buffer, charEncoding);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return null;
        }
    View Code

    然后在拦截器的preHandle方法中,调用就拿到了String字符串,然后自己JSON序列化一下

    JSONObject jsonObject1 = JSON.parseObject(OpenApiInterceptor.getOpenApiRequestData(httpServletRequest));

    即可得到!

  • 相关阅读:
    上下文管理
    复习1
    描述符
    迭代器斐波那契数列
    迭代器协议
    __call__ 方法
    析构方法__del__
    __module__和class
    1.8命令执行顺序控制与管道(学习过程)
    1.7文件系统操作与磁盘管理(学习过程)
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9012629.html
Copyright © 2011-2022 走看看