java - 如何在 webclient 中返回 Flux.just 状态
问题描述
我有个问题
如何返回空通量 onStatus 5xx 是否可能?
@Override
public Flux<Repository> getAllUserRepositories(User user) {
return WebClient.create()
.get()
.uri(hostname + ":" + port + "/user" + "/repos" + "?access_token=" + ACCESS_TOKEN + "&type=private")
.retrieve()
.onStatus(HttpStatus::is5xxServerError, clientResponse -> Mono.error(new WebServerException("Problem with service", null)))
.bodyToFlux(Repository.class)
.filter(repository -> repository.getName().contains(user.getName()));
}
解决方案
您可以使用onErrorResume
如下:
return WebClient.create()
.get()
.uri(hostname + ":" + port + "/user" + "/repos" + "?access_token=" + ACCESS_TOKEN + "&type=private")
.retrieve()
.onStatus(HttpStatus::is5xxServerError, clientResponse -> Mono.error(new WebServerException("Problem with service", null)))
.bodyToFlux(Repository.class)
.onErrorResume(WebServerException.class, (e) -> Flux.empty())
.filter(repository -> repository.getName().contains(user.getName()));
推荐阅读
- php - Laravel 项目在更改代码后不刷新视图
- android - kotlin 在片段中的 RecyclerView 中显示来自 Firebase 数据库的数据
- jquery - 在到达特定部分时为菜单项加下划线
- java - 如何修复“不兼容的类型。必需:BroadcastReceiver。找到:BroadcastReceiver”?
- python - Tkinter 首先打开第二个 GUI
- angular - 禁用 matDatePicker [Angular Material] 上的输入
- php - Laravel 查询构建器没有获取任何响应,但相同的查询在 MySql 中工作正常
- javascript - 根据对象中的键数生成子元素
- python - 乌龟清屏
- c# - 一个 WCF 服务中的多个合同_但调用第二个合同时出错