![](/img/trans.png)
[英]Spring WebFlux perform parallel HTTP requests and deserialize the response
[英]Spring WebFlux - Unable to return HTTP response in HandlerAdapter
我试图在Spring WebFlux中重新创建HttpServletResponse#getWriter
功能,但没有成功。
在Spring MVC中,我将扩展HandlerInterceptorAdapter
,使用提到的getWriter
编写目标响应,并从preHandle
方法返回false。 我正在尝试使用以下代码重新创建相同的功能。 请参阅以下摘录,以了解到目前为止我尝试过的没有成功的内容。
@Component
public class CustomInterceptor extends RequestMappingHandlerAdapter
@Override
public Mono<HandlerResult> handle(ServerWebExchange exchange, Object handler) {
exchange.getResponse().writeWith(s -> Mono.just(new SomeDto()));
// creates Internal Server Error, custom WebExceptionHandler not called
return Mono.error(new RuntimeException());
// creates Internal Server Error, custom WebExceptionHandler not called
throw new RuntimeException();
// ignores response write
return super.handle(exchange, handler);
}
}
我也尝试过使用WebFilter
,可以更改响应,但是无法访问HandlerMethod
对象,这是进一步处理所必需的。
知道如何使用Spring WebFlux做到这一点吗? 欢迎所有想法。 谢谢。
可以在新的反应式WebFilter
处理请求/响应,例如。
@Component
public class SecurityWebFilter implements WebFilter{
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
if(!exchange.getRequest().getQueryParams().containsKey("user")){
exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
}
return chain.filter(exchange);
}
}
检查我完整的webfilter示例 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.