В Java мы можем использовать запрос асинхронной обработки следующим образом:
public void doGet(HttpServletRequest req, ...) {
req.startAsync();
CompletableFuture.supplyAsync(()->{
...
String header = req.getHeader("some - header");
... do some work...
req.asyncContext().asyncContext.getResponse().getWriter().write("some result");
req.asyncContext().complete();
...
});
}
Как лучше работать с заголовком при асинхронной обработке и использовании DeferredResult?
Например:
public DeferredResult<ResponseEntity<?>> doGet(String param) {
DeferredResult<ResponseEntity<?>> result = new DeferredResult();
CompletableFuture.supplyAsync(() -> {
//Do some work and try to get header from request
});
return result;
}
Если бы я попытался получить заголовок во втором примере из HttpServletRequest, я не получаю его, если асинхронные операции будут слишком длинными, и я не использую HttpServletRequest # startAsync.
Как получить заголовки из запроса, когда я использую операции DeferredResult и async?
Спасибо!