首页 > 其他分享 >SpringBoot过滤器获取请求Body

SpringBoot过滤器获取请求Body

时间:2023-03-01 17:55:05浏览次数:67  
标签:Body SpringBoot stringBuilder request reader 过滤器 import line String

package com.example.springboot.core;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.io.*;

/**
 * @Auther: qint
 * @Date: 2023/03/01 16:57
 * @Description:
 */

@Slf4j
public class RequestWrapper extends HttpServletRequestWrapper {
    private String body;
    public RequestWrapper(HttpServletRequest request) throws IOException {
        super(request);
        body=getBodyStr(request);
    }

    public String getBodyStr(){
        return  body;
    }
//方法1
//  private String getBodyStr(HttpServletRequest request) throws IOException {
//
//      BufferedReader reader=request.getReader();
//      String line=null;
//      StringBuilder stringBuilder=new StringBuilder();
//       while ((line=reader.readLine())!=null){
//
//           stringBuilder.append(line);
//       }
//       return stringBuilder.toString();
//
//  }
  //方法2
    private String getBodyStr(HttpServletRequest request) throws IOException {

        InputStreamReader reader=new InputStreamReader(request.getInputStream());
         OutputStream outputStream=new OutputStreamWriter(reader);
        int line=0;
        StringBuilder stringBuilder=new StringBuilder();
        while ((line=reader.read())!=-1){
            stringBuilder.append((char) line);
           log.info("par="+(char)line);
        }
        return stringBuilder.toString();

    }
}

 

标签:Body,SpringBoot,stringBuilder,request,reader,过滤器,import,line,String
From: https://www.cnblogs.com/tiancai/p/17169182.html

相关文章

  • SpringBoot自定义拦截器和跨域配置冲突的问题
    跨域配置完成以后,又进行拦截器的配置,发现跨域配置失效,以下是原配置@ConfigurationpublicclassCORSConfigimplementsWebMvcConfigurer{@BeanpublicWebMv......
  • SpringBoot Actuator RCE 漏洞总结
    一、SpringBootenv获取*敏感信息 当我们直接访问springboot站点时,可以看到某些password字段填充了*通过${name}可以获取明文字段  2.配置不当导致敏感信息......
  • springboot 自动装配之@ConditionalOnClass,@ConditionalOnMissingClass
    @ConditionalOnClass表示如果有后面的类,那么就加载这个自动配置@ConditionalOnMissingClass如果没有后面的类,才自动配置这2个注解对实现自动配置很重要。@Configuration......
  • SpringBoot整合Spring Security
    1快速入门在项目中直接引入SpringSecurity的依赖<!--springSecurity--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo......
  • SpringBoot 访问html
    1、pom.xml文件配置<dependency><!--页面模板依赖--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</a......
  • springboot+mybatis+redis+mysql项目搭建,含示例Demo
    转载自:https://blog.csdn.net/qq_40772342/article/details/105049322========== redis在web开发中使用的场景很多,其中缓存是其中一个很重要的使用场景,之所以用作缓存,......
  • springboot整合shiro
    1.什么是ShiroShiro是一个基于Java的安全框架,它提供了身份验证、授权、加密和会话管理等安全功能,可以帮助Java应用程序实现安全性。2.根据Shiro的基本使用了解其基本......
  • SpringBoot全局异常封装:AOP增强
    api请求错误返回json,页面请求错误跳转报错页面:自动装配、异常通知两个方法Java异常类错误无法避免,通常由于系统原因造成。如IOError,注意不是IOException,原因可能是......
  • springboot处理乱码问题原理
    我们在用spring-springmvc时,需要配置一个过滤器 CharacterEncodingFilterCharacterEncodingFilterfilter=newOrderedCharacterEncodingFilter();filter.setEncodin......
  • springboot集成easyexcel(阿里)
    poi比较占用内存。easyexcel性能优化不少,值得一看。pom.xml中添加:<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</......