SpringBoot过滤器获取请求Body

复制代码
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();

    }
}
复制代码

 

posted @   甜菜波波  阅读(712)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2021-03-01 内存分析工具MAT(Memory Analyzer Tool)的安装与使用
2021-03-01 CMS GC日志分析
2017-03-01 C#中YieldReturn的用法
2013-03-01 用C# WebClient类 提交数据
2013-03-01 webclient 和 webrequest获取网页源码的
点击右上角即可分享
微信分享提示