Introduce WebClient.ResponseSpec.awaitBodilessEntity()

This commit also allows awaitBody<Unit>() to be used.

Closes gh-26504
This commit is contained in:
gaerfield
2021-02-03 22:04:55 +01:00
committed by Sébastien Deleuze
parent 3718c8d0e0
commit b00c7075a5
2 changed files with 32 additions and 2 deletions

View File

@@ -138,7 +138,16 @@ inline fun <reified T : Any> WebClient.ResponseSpec.bodyToFlow(): Flow<T> =
* @since 5.2
*/
suspend inline fun <reified T : Any> WebClient.ResponseSpec.awaitBody() : T =
bodyToMono<T>().awaitSingle()
when (T::class) {
Unit::class -> awaitBodilessEntity().let { Unit as T }
else -> bodyToMono<T>().awaitSingle()
}
/**
* Coroutines variant of [WebClient.ResponseSpec.toBodilessEntity].
*/
suspend fun WebClient.ResponseSpec.awaitBodilessEntity() =
toBodilessEntity().awaitSingle()
/**
* Extension for [WebClient.ResponseSpec.toEntity] providing a `toEntity<Foo>()` variant