WebFlux Mono,优雅地处理http错误



我正在将WebFlux引入到一个微服务中,但在处理被调用服务的http错误时遇到了问题。

我有一个id列表,需要从另一个rest服务中检索一个实体。如果其中一个id返回http错误,我不想抛出异常,我想记录http错误,";return null";然后转到列表中的下一个id。

我曾尝试使用onStatus,并在收到错误状态时返回Mono.empty,但我得到了以下UnsupportedMediaException:
Content type 'application/octet-stream' not supported for bodyType=MyView

我的代码目前是这样的:

final MyView view = webClient.get()
.uri(builder -> builder.path("someUrl").build("someId"))
.retrieve()
.onStatus(HttpStatus::isError, response -> {
log.error("some error message");
return Mono.empty();
})
.bodyToMono(MyView.class)
.blockOptional()
.orElse(null);

任何关于我做错了什么的建议都将不胜感激。

线索在错误消息中:Content type 'application/octet-stream' not supported for bodyType=MyView

答案是设置content-type:(

最新更新