SpringBoot WebClient - exchangeToMono

问题描述

我需要从我的 Spring 服务进行外部 API 调用。我打算返回一个 Response 对象, 包含状态代码,实际的 json 响应。这样,调用者就可以根据状态码决定如何解码 json。示例 - 如果状态为 2xx - 保存响应,4xx - 将其记录在某个错误表中等

我做过这样的事情。但是,我不确定这种方法是否正确。 基本上,我需要返回所有状态代码的 json 和状态代码

想知道如何使用 exchangetoMono 实现这一点。

下面的代码片段工作正常,但我不确定它是否正确。

感谢任何帮助或建议...

ResponSEObj 有两个属性 - statusCode 和 json。

public ResponSEObj getExternalData() {

    ResponSEObj obj = new ResponSEObj();

    Mono<String> result = webclient.get().
                        .uri("/some/external/api")
                        .headers( //headers)
                        .exchangetoMono( response -> {
                                obj.setStatusCode(response.rawStatusCode());
                                return response.bodyToMono(String.class);
                            });
    
    obj.setJson(result.block));

    return obj;

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)