问题标签 [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.
spring-boot - 检索 webclient 响应 - Spring Cloud
我正在使用 spring cloud 从另一个服务请求数据。所以,基本上我请求数据,我想检索该数据并将其分配给另一个对象,该对象将是我要保存的对象。
这是我的代码:
但是我有一个例外:
如何从异步方法中获取数据?
get - RestTemplate getForObject 工作了几个小时,然后抛出 400 错误请求,最终更改为 494 UnsupportedHttpStatusCodeException
我正在尝试使用 getForObject 方法访问静态 json。它工作了 14 个小时,然后开始抛出 400 Bad Request。又过了 24 小时,它开始抛出 UnsupportedHttpStatusCodeException [494] null。
我们使用 aws ec2 实例来托管我们的应用程序。该问题在部署后 14 小时左右出现,并在重新部署应用程序后消失,再过 14 小时后重新出现。我的客户端类具有以下代码。
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
java - 如何在响应式 WebClient 中自定义 Jackson XML 解析?
我正在使用WebClient
fromspring-webflux
发送POST
请求。我在类路径上也有jackson
库。
问题:我如何告诉默认的杰克逊映射器尝试将任何内容解析为application/xml
. 我找不到任何可以以任何方式更改 xml 解码器的配置方法!?
我在哪里可以配置 xml 解析?
旁注:使用时,RestTemplate
我有一个自动提供该功能的以下 bean:
我怎样才能将其转换为WebClient
使用?
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
java - 如何在 WebClient 响应中提取 httpHeader?
如何从 http 标头中提取参数“session-id”,并将其写入响应中?
java - 如何在 Spring WebClient 中拦截 http 流量?
将请求从 DTO 转换为 JSON 字符串后,如何拦截WebFilter
它们?
当然我可以添加一个ExchangeFilterFunction
,但clientRequest.body()
只显示我的输入对象,而不是转换后的 json 字符串:
因此,我正在寻找一种在将传出请求从 dto 转换为 json 字符串后拦截它们的方法。
反过来,在响应从 json 转换为 dto之前拦截响应。
java - 如何在 Java webflux webclient 请求中禁用安全证书检查
通过 webflux webclient 发出 post/get 请求时,如何禁用 ssl 检查?
我正在使用的示例构建器代码:
在上面的代码中,应该进行哪些更改以使 ssl 验证为 false ?
java - 如何在 Spring WebClient / DataBuffer 中拦截 http 响应流量?
如何WebClient
在 XML 响应从字节转换为 DTO 之前拦截它们?
我尝试添加一个exchangeStrategy
,但我如何转换DataBuffer
为字符串,然后仍然调用该super.decode()
方法?
我成功如下,但我不知道这是否是正确的解决方案?尤其是在里面返回一个空集合flatMapInterable()
感觉不对,但我没有找到另一种方法让它工作。
问题:map()
由于我已经阅读了DataBuffer
. 我怎么能读好几遍?