问题标签 [spring-webclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
44 浏览

spring-boot - 检索 webclient 响应 - Spring Cloud

我正在使用 spring cloud 从另一个服务请求数据。所以,基本上我请求数据,我想检索该数据并将其分配给另一个对象,该对象将是我要保存的对象。

这是我的代码:

但是我有一个例外:

如何从异步方法中获取数据?

0 投票
1 回答
10204 浏览

spring-boot - 在错误情况下从 WebClient 获取响应正文的正确方法是什么?

我是WebClient反应式编程的新手。我想从请求中获取响应正文。如果发生错误,必须记录 http 代码、标头和正文,但仍应返回正文。

经过大量挖掘和谷歌搜索,我找到了两个解决方案。但在我看来,两者都过于复杂。有没有更简单的解决方案?

Mono我找到了这个解决方案:

基于Flux它需要更少的代码。但如果我知道只会有一个结果,我认为我不应该使用 Flux。

0 投票
0 回答
28 浏览

get - RestTemplate getForObject 工作了几个小时,然后抛出 400 错误请求,最终更改为 494 UnsupportedHttpStatusCodeException

我正在尝试使用 getForObject 方法访问静态 json。它工作了 14 个小时,然后开始抛出 400 Bad Request。又过了 24 小时,它开始抛出 UnsupportedHttpStatusCodeException [494] null。

我们使用 aws ec2 实例来托管我们的应用程序。该问题在部署后 14 小时左右出现,并在重新部署应用程序后消失,再过 14 小时后重新出现。我的客户端类具有以下代码。

0 投票
3 回答
4405 浏览

java - 如何覆盖任何 HttpHeader 以响应 WebClient?

如何修改Content-Type收到的响应(因为我收到来自发出错误内容类型的网络服务器的响应。由于我无法控制外部服务器,我想进一步更正内容类型正确处理(例如使用杰克逊库等)。

这个问题一般可以回答如何覆盖任何 http 标头。

在我的情况下,根本原因是我收到text/html了,但响应正文实际上是一个application/xml. 并jackson拒绝解析该响应,原因是:

org.springframework.web.reactive.function.UnsupportedMediaTypeException: Content type 'text/html' not supported for bodyType=MyResponse

0 投票
0 回答
690 浏览

java - 如何在响应式 WebClient 中自定义 Jackson XML 解析?

我正在使用WebClientfromspring-webflux发送POST请求。我在类路径上也有jackson库。

问题:我如何告诉默认的杰克逊映射器尝试将任何内容解析为application/xml. 我找不到任何可以以任何方式更改 xml 解码器的配置方法!?

我在哪里可以配置 xml 解析?

旁注:使用时,RestTemplate我有一个自动提供该功能的以下 bean:

我怎样才能将其转换为WebClient使用?

0 投票
2 回答
30127 浏览

spring - PrematureCloseException:连接过早关闭

我使用 Web-flux/Reactive 和 Webclient,在 tomcat 和 spring-boot 上运行它。

一切正常。我读了很多关于它的文章。问题似乎是,每当您使用 webclient 时,您都必须返回或使用响应,否则它将关闭连接并且您还没有使用它,并且您会看到很多日志消息说the connection close prematurely,如果我有我可以使用 404 状态码是错误的场景OnStatus并抛出异常,但我的情况是:当上游服务返回 404 时,我必须手动返回一个空单声道。所以我不使用来自网络客户端请求的响应,我只是使用来自 .exchange() 的 ClientResponse 来检查状态并处理它。我最初的问题是日志消息,因为它只是“垃圾”,您不希望在日志消息中看到很多它。我在某处读到,如果发生这种情况,连接也不能被重新使用,所以听起来很糟糕,但我不知道......如果响应是 200,我只是在找不到时收到此消息它返回对象并且不打印日志消息。

我尝试使用 clientResponse.BodyToMono(Void.Class) 但它也不起作用。日志消息不断出现

日志条目

启用窃听的日志条目

和我的处理程序

我已经尝试使用clientResponse.bodyToMono(Void.class);来完成响应,但它仍然不起作用,我需要一种方法来完成来自 web 客户端的响应,然后能够重新使用连接池并摆脱那些日志消息

我在 github 上创建了一个问题,但它已关闭,所以我在这里创建了这个问题。https://github.com/spring-projects/spring-framework/issues/23249

0 投票
1 回答
2675 浏览

java - 如何在 WebClient 响应中提取 httpHeader?

如何从 http 标头中提取参数“session-id”,并将其写入响应中?

0 投票
1 回答
1836 浏览

java - 如何在 Spring WebClient 中拦截 http 流量?

将请求从 DTO 转换为 JSON 字符串后,如何拦截WebFilter它们?

当然我可以添加一个ExchangeFilterFunction,但clientRequest.body()只显示我的输入对象,而不是转换后的 json 字符串:

因此,我正在寻找一种在将传出请求从 dto 转换为 json 字符串后拦截它们的方法。

反过来,在响应从 json 转换为 dto之前拦截响应。

0 投票
1 回答
3923 浏览

java - 如何在 Java webflux webclient 请求中禁用安全证书检查

通过 webflux webclient 发出 post/get 请求时,如何禁用 ssl 检查?

我正在使用的示例构建器代码:

在上面的代码中,应该进行哪些更改以使 ssl 验证为 false ?

0 投票
1 回答
410 浏览

java - 如何在 Spring WebClient / DataBuffer 中拦截 http 响应流量?

如何WebClient在 XML 响应从字节转换为 DTO 之前拦截它们?

我尝试添加一个exchangeStrategy,但我如何转换DataBuffer为字符串,然后仍然调用该super.decode()方法?

我成功如下,但我不知道这是否是正确的解决方案?尤其是在里面返回一个空集合flatMapInterable()感觉不对,但我没有找到另一种方法让它工作。

问题:map()由于我已经阅读了DataBuffer. 我怎么能读好几遍?