问题标签 [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.
java - 访问令牌响应:tokenType 不能为空
我正在升级我的服务并使用 oAuth2 实现 webclient,我得到的异常是“tokenType 不能为空”,请你帮我解决这个问题。
异常:org.springframework.security.oauth2.core.OAuth2AuthorizationException:[invalid_token_response] 尝试检索 OAuth 2.0 访问令牌时发生错误响应:提取类型 [class org.springframework.security.oauth2.core.endpoint 的响应时出错.OAuth2AccessTokenResponse] 和内容类型 [application/json];嵌套异常是 org.springframework.http.converter.HttpMessageNotReadableException:读取 OAuth 2.0 访问令牌响应时出错:tokenType 不能为空;嵌套异常是 java.lang.IllegalArgumentException: tokenType 不能为 null
spring - 如何在普罗米修斯中公开 webClient 指标?
我想从服务向下游系统公开 WebClient 调用的指标,需要诸如请求计数、最短、最长响应时间等指标。
我想知道如何为响应式 Web 客户端编写量规。
这是我有兴趣与 webclient 一起使用的示例 MeterBinder。
spring-boot - 代理设置不适用于 Spring WebClient
我的以下 WebClient 在 Internet 连接上工作正常,但不能通过我们的代理连接。
事件虽然,同一个客户端正在通过代理工作,如果我如下所述设置它,
但是,如果我使用System.setProperty("http.proxyHost","ourproxy.com");
System.setProperty("http.proxyPort","8080");
或 JVM 运行时参数设置相同的代理详细信息-Dhttp.proxyHost=ourproxy.com -Dhttp.proxyPort=8080
调用因 UnknownHostException 而失败,例如,
请帮忙,如果我通过 JVM 运行时参数或系统属性设置代理详细信息,为什么我的代码无法运行。
其实我想避免代码级代理设置。所以请指导我更正我的代码或方法,以便我可以使用 JVM 运行时参数选项。
spring-data - 由于 ReadTimeoutException 调整 ReactiveElasticsearchClient
我们一直在试验,ReactiveElasticsearchRepository
但是当服务保持空闲几个小时并且您尝试从 Elastic Search 检索超时的数据时,我们遇到了问题。
我们在发出前几个请求时看到的是:
当我启用DEBUG
forreactor.netty
时,我可以看到它经历了尝试池中每个连接的动作:
直到最终所有活动/非活动连接都被清除,然后它重新创建新的连接然后工作。
有没有办法在幕后进行调整,以限制连接在重新创建之前可以在池中保留多长时间?或者能够处理这些超时的替代想法。
java - 如何使用 WebClient 执行同步请求?
Spring 文档指出,WebClient
即使我们想要执行同步 http 调用,我们也必须从 RestTemplate 切换到。
现在我有以下代码:
当然我可以在这里使用 CountdownLatch 但它看起来像 API 滥用。
我怎么能执行同步请求?
java - 如何记录spring webclient请求和响应正文?
向 WebClient 添加了一个 ExchangeFilterFunction,它记录请求和响应,但在记录时,无法将请求和响应正文记录为字符串或 JSON。它作为一个对象打印
尝试了不同的转换并使用 bodyToMono、toEntity 将主体作为字符串检索,但它们返回的是一个对象而不是字符串。
java - 缓存和使缓存的 Mono 无效
我在尝试缓存 aMono
返回的 a时遇到问题WebClient
。代码是这样的:
目的是缓存Mono
用于接收 a 的Token
对象,直到令牌过期。令牌过期后,缓存Mono
变为空并请求新令牌。这可以按预期工作,但不幸switchIfEmpty()
的是实际上并没有“切换”,而是包装了源代码Mono
。结果,随着越来越多的包装SwitchIfEmptyMono
被创建,这会产生内存泄漏。在这种情况下,正确的模式是什么?有没有办法用新的代替空Mono
的?
java - 如何并行调用多个http请求(具有重试功能)并等待所有请求完成?
现在我的代码如下所示:
我怎么能等待所有回复都被接受的那一刻?
如果某些请求失败,我只想重试它们。
我怎样才能实现它?
java - 为什么 webClient 不做任何 http 调用?
我有以下代码:
webClient 实例化:
我的目标是允许并行执行队列中的所有 http 请求,并在所有请求完成后等待。但是尽管队列不是空的,但实际的 http 调用并没有发生。你能解释一下为什么以及如何解决它吗?
更新
感谢@caco3 的建议。我更正了这样的代码:
我看到以下日志:
所以当前代码不会等待所有请求终止。但我真的需要它
java - 使用spring webClient完成所有http请求后如何等待?
我想为每个队列元素执行 http 请求。这些请求应该被并行调用。
我还需要等待所有请求的终止。
我开发了以下代码:
当队列具有单个元素时,我会看到以下日志:
所以这段代码不允许等待请求终止。
我怎么能做到呢?
附言
看起来Flux.merge(monoList).blockLast()
是我需要的东西。它会正常工作吗?