diff --git a/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/GlobalCacheRequestFilter.java b/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/GlobalCacheRequestFilter.java
index 3280930e1e6e40305434c0c22453ed424d992f6a..16cc6162acf974c89445a2bf42e0495ace7a4fc5 100644
--- a/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/GlobalCacheRequestFilter.java
+++ b/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/GlobalCacheRequestFilter.java
@@ -5,9 +5,14 @@ import org.springframework.cloud.gateway.filter.GatewayFilterChain;
 import org.springframework.cloud.gateway.filter.GlobalFilter;
 import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
 import org.springframework.core.Ordered;
+import org.springframework.core.io.buffer.DataBuffer;
+import org.springframework.core.io.buffer.DataBufferUtils;
 import org.springframework.http.HttpMethod;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
 import org.springframework.stereotype.Component;
 import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
 /**
@@ -16,29 +21,36 @@ import reactor.core.publisher.Mono;
  * @author: zxfei
  * @date: 2022/6/20 16:59
  */
-//@Component
+@Component
 @Slf4j
 public class GlobalCacheRequestFilter implements GlobalFilter, Ordered {
 
     @Override
     public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
-            log.info("GlobalCacheRequestFilter:{}",getOrder());
-        // GET DELETE 涓嶈繃婊�
-        HttpMethod method = exchange.getRequest().getMethod();
-        if (method == null || method == HttpMethod.GET || method == HttpMethod.DELETE) {
+        log.info("GlobalCacheRequestFilter:{}", getOrder());
+        if (exchange.getRequest().getHeaders().getContentType() == null) {
             return chain.filter(exchange);
+        } else {
+            return DataBufferUtils.join(exchange.getRequest().getBody())
+                    .flatMap(dataBuffer -> {
+                        DataBufferUtils.retain(dataBuffer);
+                        Flux<DataBuffer> cachedFlux = Flux
+                                .defer(() -> Flux.just(dataBuffer.slice(0, dataBuffer.readableByteCount())));
+                        ServerHttpRequest mutatedRequest = new ServerHttpRequestDecorator(
+                                exchange.getRequest()) {
+                            @Override
+                            public Flux<DataBuffer> getBody() {
+                                return cachedFlux;
+                            }
+                        };
+                        return chain.filter(exchange.mutate().request(mutatedRequest).build());
+                    });
         }
-        return ServerWebExchangeUtils.cacheRequestBodyAndRequest(exchange, (serverHttpRequest) -> {
-            if (serverHttpRequest == exchange.getRequest()) {
-                return chain.filter(exchange);
-            }
-            return chain.filter(exchange.mutate().request(serverHttpRequest).build());
-        });
 
     }
 
     @Override
     public int getOrder() {
-        return 0;
+        return HIGHEST_PRECEDENCE;
     }
 }
diff --git a/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/GlobalLogFilter.java b/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/GlobalLogFilter.java
index 91f43aab693f4928c69c2691333d6b65d0f1958e..583643c0b991412cbc40c04b5347763fbb21f373 100644
--- a/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/GlobalLogFilter.java
+++ b/smart-gateway/src/main/java/com/mortals/xhx/base/framework/filter/GlobalLogFilter.java
@@ -11,6 +11,7 @@ import org.springframework.cloud.gateway.filter.GatewayFilterChain;
 import org.springframework.cloud.gateway.filter.GlobalFilter;
 import org.springframework.core.Ordered;
 import org.springframework.core.io.buffer.DataBuffer;
+import org.springframework.core.io.buffer.DataBufferUtils;
 import org.springframework.http.MediaType;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.stereotype.Component;
@@ -22,8 +23,10 @@ import reactor.core.publisher.Mono;
 
 import javax.sound.midi.Track;
 import java.net.URI;
+import java.nio.CharBuffer;
 import java.nio.charset.StandardCharsets;
 import java.util.LinkedHashSet;
+import java.util.concurrent.atomic.AtomicReference;
 
 import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR;
 
@@ -165,14 +168,16 @@ public class GlobalLogFilter implements GlobalFilter, Ordered {
     private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest) {
         //鑾峰彇璇锋眰浣�
         Flux<DataBuffer> body = serverHttpRequest.getBody();
-        StringBuilder sb = new StringBuilder();
+
+        AtomicReference<String> bodyRef = new AtomicReference<>();
         body.subscribe(buffer -> {
-            byte[] bytes = new byte[buffer.readableByteCount()];
-            buffer.read(bytes);
-            String bodyString = new String(bytes, StandardCharsets.UTF_8);
-            sb.append(bodyString);
+            CharBuffer charBuffer = StandardCharsets.UTF_8.decode(buffer.asByteBuffer());
+            DataBufferUtils.release(buffer);
+            bodyRef.set(charBuffer.toString());
         });
-        return sb.toString();
+        //鑾峰彇request body
+        return bodyRef.get();
+
     }
 
     public static String getOriginalRequestUrl(ServerWebExchange exchange) {