Spring webClient «Тело ответа клиента можно использовать только один раз»JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring webClient «Тело ответа клиента можно использовать только один раз»

Сообщение Anonymous »

Код: Выделить всё

private fun buildWebClient(): WebClient {

val httpClient:CloseableHttpAsyncClient =
HttpAsyncClients.createDefault()

val connector = HttpComponentsClientHttpConnector(httpClient)

return WebClient.builder()
.baseUrl("https://example.com")
.clientConnector(connector)
.filter(Filter())
.build()
}

private fun Filter(): ExchangeFilterFunction {
return ExchangeFilterFunction.ofResponseProcessor { response ->
response.bodyToMono(String::class.java).cache().flatMap { body ->
val res = json().decodeFromString(body)
when {
res.isSuccess() -> {
val bufferFactory = DefaultDataBufferFactory()
val cachedBody = bufferFactory.wrap(body.toByteArray())

Mono.just(response.mutate().body(Flux.just(cachedBody)).build())
}

else -> {
throw IllegalArgumentException("error")
}
}
}
}
}

как исправить ошибку?

Код: Выделить всё

reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IllegalStateException: The client response body can only be consumed once Caused by: java.lang.IllegalStateException: The client response body can only be consumed once at org.springframework.http.client.reactive.AbstractClientHttpResponse.lambda$singleSubscription$0(AbstractClientHttpResponse.java:65) \~\[spring-web-6.1.5.jar:6.1.5\] Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s):
Я не могу найти фильтр исправлений...
пожалуйста, помогите мне
Эта проблема возникает только при использовании асинхронные клиенты
я хочу исправить ошибку
мне так сложно

Подробнее здесь: https://stackoverflow.com/questions/790 ... sumed-once
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Spring webClient «Тело ответа клиента можно использовать только один раз»
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Spring webClient «Тело ответа клиента можно использовать только один раз»
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как асинхронно сохранить тело ответа HTTP-запроса в Spring WebClient
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Spring boot/Spring WebClient — базовый HTTP-клиент завершился без отправки ответа.
    Anonymous » » в форуме JAVA
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Spring Webflux: Webclient: получить тело при ошибке
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»