核心思路是通过ModifyResponseBodyGatewayFilterFactory来实现
官方文档中,ModifyResponseBodyGatewayFilterFactory的使用方法没有详细描述
实际使用时,配置如下:
spring:
cloud:
gateway:
routes:
- id: echo
order: -1
uri: lb://demo
filters:
- name: ModifyResponseBody
args:
inClass: '#{T(String)}'
outClass: '#{T(String)}'
rewriteFunction: '#{@handleEchoResponse}'
predicates:
- Method=POST
- Path=/echo
还需要实现RewriteFunction,在实现中可以读取并修改response body
@Slf4j @Component public class HandleEchoResponse implements RewriteFunction{ @Override public Publisher apply(ServerWebExchange exchange, String body) { if (StrUtil.isNotBlank(body)) { log.debug("response body:{}", body); } return Mono.just(body); } }



