- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有更好的方法在调用 onErrorResume
时不涉及使用额外的 ObjectMapper
来在 WebClient 中获取错误响应?
在我的网络客户端中:
import org.springframework.web.reactive.function.client.WebClientResponseException.BadRequest
// ...
.onErrorResume(BadRequest::class.java, badRequestToMyDto())
private fun badRequestToMyDto(): (BadRequest) -> Mono<out MyDto> =
{ it: BadRequest ->
val error = objectMapper.readValue<ErrorResponseDto>(it.responseBodyAsByteArray)
// ...
}
有一个方法 .bodyToMono
所以我想知道是否有类似的东西可以用在 onErrorResume
中。
最佳答案
您可以将 retrieve()
与 onStatus
结合使用,以便在出现“错误”时访问客户端响应。然后,您可以对其调用 bodyToMono
以解码对 java 对象的响应。根据响应主体的内容类型,spring 将使用正确的解码器。例如,如果正文是 json,它将使用 ObjectMapper
进行解码。
WebClient.builder().build()
.get()
.uri("localhost:8080")
.retrieve()
.onStatus(HttpStatus::isError, clientResponse ->
clientResponse.bodyToMono(MyErrorResponse.class)
.flatMap(body -> {
// logic
})
)
关于kotlin - 在 WebClient onErrorResume 中反序列化没有对象映射器的错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70288529/
我正在尝试使用 WebFlux,但我看到了一个我不太了解的行为,我怀疑这是 WebFlux 或可能是 Reactor 中的错误,但我需要确认。 我试图创建一个最低限度可重现的案例,它由一个非常简单的
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我想知道是否有更好的方法在调用 onErrorResume 时不涉及使用额外的 ObjectMapper 来在 WebClient 中获取错误响应? 在我的网络客户端中: import org.spr
在spring项目reactor中,onErrorResume和doOnError有什么区别?我什么时候应该分别使用它们? 最佳答案 onErrorResume:当上游发生异常时提供回退流。 doOn
Flux.just("a", "b") .flatMap(s -> s.equals("a") ? Mono.error(new RuntimeException() : Flux.j
我正在使用 reactor kafka 发送 kafka 消息并接收和处理它们。 在接收 kakfa 负载时,我进行了一些反序列化,如果出现异常,我只想记录该负载(通过保存到 mongo ),然后继续
我是一名优秀的程序员,十分优秀!