【发布时间】:2019-09-26 00:24:08
【问题描述】:
我正在从我的控制器调用一个 POST 端点。 POST 端点验证用户并返回一个 cookie。我是 Spring web-flux 的新手,所以需要获取 cookie 并将其发回。
@PostMapping(value = "/valid")
public ResponseWrapper<UserResponseDTO> validate(
@RequestBody @Valid RequestWrapper<UserRequestDTO> request,
HttpServletResponse res) {
WebClient webClient = WebClient.builder()
.baseUrl(BASE_URI)
.defaultHeader(HttpHeaders.CONTENT_TYPE,
MediaType.APPLICATION_JSON_VALUE)
.build();
Mono<ResponseWrapper> response = webClient.post()
.uri(PWD_AUTH_URI)
.contentType(MediaType.APPLICATION_JSON)
.syncBody(request)
.retrieve()
.bodyToMono(ResponseWrapper.class);
ResponseWrapper<UserResponseDTO> wr = response.block();
// how to get cookie from the webClient
// set into the "res" that cookie
return wr;
}
【问题讨论】:
-
使用
exchange方法而不是retrieve来使用Web 服务响应,因此您可以访问clientResponse对象,您可以从中访问cookies。永远不建议阻止响应式调用。
标签: java spring-boot cookies spring-webflux