From 109c64e7c20e044ee3fa650f0d0599aeb64633e8 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期五, 13 三月 2020 22:14:58 +0800
Subject: [PATCH] 批量替换表前缀调整

---
 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