Quellcode durchsuchen

优化http请求缓存逻辑

Woody vor 3 Wochen
Ursprung
Commit
957d0820ec

+ 1 - 1
framework-base/src/main/java/com/chelvc/framework/base/context/LoggingContextHolder.java

@@ -124,7 +124,7 @@ public final class LoggingContextHolder {
         if (StringUtils.notEmpty(query)) {
             endpoint.append("?").append(query);
         }
-        if (HttpUtils.isBodyMethod(request) && !HttpUtils.isMultipartBody(request)) {
+        if (HttpUtils.hasBody(request) && !HttpUtils.isMultipartBody(request)) {
             String body = HttpUtils.getBody(request);
             if (StringUtils.notEmpty(body)) {
                 endpoint.append(StringUtils.SPACE);

+ 1 - 1
framework-base/src/main/java/com/chelvc/framework/base/interceptor/RequestInvokeInterceptor.java

@@ -162,7 +162,7 @@ public class RequestInvokeInterceptor extends OncePerRequestFilter {
                 // Servlet 规范规定如果调用了getInputStream()或getReader()方法,则getParameter*()方法的行为是未定义的
                 // Tomcat、Jetty、Undertow容器均支持在调用getParameter*()方法后能正常调用getInputStream()方法
                 this.parameters = request.getParameterMap();
-                if (HttpUtils.isBodyMethod(request)) {
+                if (HttpUtils.hasBody(request)) {
                     try (InputStream input = request.getInputStream()) {
                         if (input instanceof CachingInputStream) {
                             this.bytes = ((CachingInputStream) input).bytes;

+ 6 - 4
framework-base/src/main/java/com/chelvc/framework/base/util/HttpUtils.java

@@ -250,13 +250,15 @@ public final class HttpUtils {
     }
 
     /**
-     * 判断是否是请求体方式
+     * 判断是否有请求体
      *
      * @param request 请求对象
      * @return true/false
      */
-    public static boolean isBodyMethod(@NonNull ServletRequest request) {
-        if (!(request instanceof HttpServletRequest)) {
+    public static boolean hasBody(@NonNull ServletRequest request) {
+        if (isJsonBody(request)) {
+            return true;
+        } else if (!(request instanceof HttpServletRequest)) {
             return false;
         }
         String method = ((HttpServletRequest) request).getMethod();
@@ -409,7 +411,7 @@ public final class HttpUtils {
      * @return 请求参数
      */
     public static String serialize(@NonNull ServletRequest request) {
-        return isBodyMethod(request) && isJsonBody(request) ? getBody(request) : serialize(request.getParameterMap());
+        return isJsonBody(request) ? getBody(request) : serialize(request.getParameterMap());
     }
 
     /**