我正在使用webflux Mono(在Spring Boot5中)来使用一个外部API。当API响应状态代码为200时,我能够很好地获取数据,但当API返回错误时,我无法从API中检索错误消息。Spring webclient错误处理程序始终将消息显示为
ClientResponse具有错误的状态代码:500内部服务器错误
,但当我使用PostMan时,API返回状态代码为500的JSON响应。
{
"error": {
"statusCode": 500,
"name": "Error",
"message":"Failed to add object with ID:900 as the object exists",
"stack":"some long message"
}
}
我使用WebClient的请求如下
webClient.getWebClient()
.post()
.uri("/api/Card")
.body(BodyInserters.fromObject(cardObject))
.retrieve()
.bodyToMono(String.class)
.doOnSuccess( args -> {
System.out.println(args.toString());
})
.doOnError( e ->{
e.printStackTrace();
System.out.println("Some Error Happend :"+e);
});
我的问题是,当API返回状态代码为500的错误时,我如何获得对JSON响应的访问?
查看.onerrormap()
,它给出了要查看的异常。由于您可能还需要exchange()的body()来查看,所以不要使用retrieve,但是
.exchange().flatMap((ClientResponse) response -> ....);
只是想知道有没有办法得到spring Web-Flux的web客户端的响应时间?
我正在使用Spring Data Elasticsearch来获取一些聚合,并尝试使用ReactiveElasticsearchClient。我从Elasticsearch得到一个500错误,但我不知道如何获得响应的主体,以便调试请求的错误。以下是我目前掌握的情况: 为组织启用跟踪日志记录。springframework。数据elasticsearch。客户WIRE,将记录请求正文,但响应的日志行
我正在spring应用程序中使用web客户端 我在执行相同操作时面临内存泄漏问题 我正在使用下面的代码获取来自服务的非2xx响应的响应体: 我的问题是,如果我在responseMono上使用dispose方法,处理过程需要很长的时间,而没有它,我会面临内存泄漏问题。我在这里做错什么了吗?
问题内容: 我试图从Web服务而不是通常的POJO集合中获取原始XML响应。 我正在使用从WSDL和某些模式生成的Web服务客户端(因此我可以访问该客户端的代码)。该客户端是在RAD 7.5中生成的,我认为是使用JAX- WS。我一直在研究客户端代码本身,但是我什至不确定客户端代码是否处理过原始XML或是否将其传递给其他库。 问题答案: 您可以使用 您可以使用方法简单地获取消息并将消息转换为Str
例如,在本文中,我试图理解为什么在流中使用flatmap()(直接从引用中粘贴副本) AFAIK,应用于流的平面图会为流中的每个输入值产生任意数量的值(0... n)。所以一个平面图需要一个产生流的函数。 通量发射0个或多个项目,然后可选地完成或偏离。 那么,响应流上到底发生了什么?这是接收响应流并发出0个或更多类警报对象的函数吗?因此,如果我们
但是,我不确定为什么它不输出get请求的值?它实际上并不触发endpoint。