From 22b09535afd36b76564a6b32a6fd6c7d967d1db4 Mon Sep 17 00:00:00 2001
From: Sxile <3440626@qq.com>
Date: 星期五, 17 七月 2020 11:11:03 +0800
Subject: [PATCH] 修复param参数名称
---
ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java | 44 ++++++++++++++++----------------------------
1 files changed, 16 insertions(+), 28 deletions(-)
diff --git a/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java b/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
index f059d37..bd7097f 100644
--- a/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
+++ b/ruoyi/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
@@ -4,12 +4,12 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.nio.charset.Charset;
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
+import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.http.HttpHelper;
/**
* 构建可重复读取inputStream的request
@@ -20,10 +20,13 @@
{
private final byte[] body;
- public RepeatedlyRequestWrapper(HttpServletRequest request) throws IOException
+ public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException
{
super(request);
- body = readBytes(request.getReader(), "utf-8");
+ request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding("UTF-8");
+
+ body = HttpHelper.getBodyString(request).getBytes("UTF-8");
}
@Override
@@ -35,9 +38,17 @@
@Override
public ServletInputStream getInputStream() throws IOException
{
+
final ByteArrayInputStream bais = new ByteArrayInputStream(body);
+
return new ServletInputStream()
{
+
+ @Override
+ public int read() throws IOException
+ {
+ return bais.read();
+ }
@Override
public boolean isFinished()
@@ -52,33 +63,10 @@
}
@Override
- public void setReadListener(ReadListener listener)
+ public void setReadListener(ReadListener readListener)
{
- }
-
- @Override
- public int read() throws IOException
- {
- return bais.read();
}
};
- }
-
- /**
- * 通过BufferedReader和字符编码集转换成byte数组
- */
- private byte[] readBytes(BufferedReader br, String encoding) throws IOException
- {
- String str = null, retStr = "";
- while ((str = br.readLine()) != null)
- {
- retStr += str;
- }
- if (StringUtils.isNotBlank(retStr))
- {
- return retStr.getBytes(Charset.forName(encoding));
- }
- return null;
}
}
--
Gitblit v1.9.2