请求将到达一个API网关,我希望在此提取请求主体并存储在DB中。然后请求将被路由到另一个服务,在此执行请求。
目前,当我使用request.getInputStream()时,此数据将无法用于其他服务。
HttpServletRequest是一个公开getInputStream()方法以读取主体的接口。默认情况下,来自此InputStream的数据只能读取一次。
参考https://www.baeldung.com/spring-reading-httpservletrequest-multiple-times#:~:text=Spring's%20ContentCachingRequestWrapper,-Spring%20provides%20a&text=This%20class%20provides%20a%20method,body%20by%20consuming%20the%20InputStream.,但我们仍然在网关服务中使用request.getInputStream(),因此它在以后不可用。
有谁能帮个忙吗
1条答案
按热度按时间js81xvg61#
您可以使用Springboot中的restTemplate类创建新请求,该类出现在Spring Web包中。
你可以这样做:
在使用restTemplate之前,首先配置bean:
并使用@Autowired注解将其注入控制器类。