boot spring 打印请求参数_springboot 获取post请求参数

本文介绍了一种在SpringBoot中获取POST请求参数的方法,通过创建一个`RequestWrapper`类,继承`HttpServletRequestWrapper`,并重写`getInputStream()`和`getReader()`方法来读取请求体内容。这样可以方便地打印或处理HTTP请求的参数。
摘要由CSDN通过智能技术生成

importjavax.servlet.ReadListener;importjavax.servlet.ServletInputStream;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletRequestWrapper;import java.io.*;public class RequestWrapper extendsHttpServletRequestWrapper {private finalString body;publicRequestWrapper(HttpServletRequest request) {super(request);

StringBuilder stringBuilder= newStringBuilder();

BufferedReader bufferedReader= null;

InputStream inputStream= null;try{

inputStream=request.getInputStream();if (inputStream != null) {

bufferedReader= new BufferedReader(newInputStreamReader(inputStream));char[] charBuffer = new char[128];int bytesRead = -1;while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {

stringBuilder.append(charBuffer,0, bytesRead);

}

}else{

stringBuilder.append("");

}

}catch(IOException ex) {

}finally{if (inputStream != null) {try{

inputStream.close();

}catch(IOException e) {

e.printStackTrace();

}

}if (bufferedReader != null) {try{

bufferedReader.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}

body=stringBuilder.toString();

}

@Overridepublic ServletInputStream getInputStream() throwsIOException {final ByteArrayInputStream byteArrayInputStream = newByteArrayInputStream(body.getBytes());

ServletInputStream servletInputStream= newServletInputStream() {

@Overridepublic booleanisFinished() {return false;

}

@Overridepublic booleanisReady() {return false;

}

@Overridepublic voidsetReadListener(ReadListener readListener) {

}

@Overridepublic int read() throwsIOException {returnbyteArrayInputStream.read();

}

};returnservletInputStream;

}

@Overridepublic BufferedReader getReader() throwsIOException {return new BufferedReader(new InputStreamReader(this.getInputStream()));

}publicString getBody() {return this.body;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值