Niclas Kron
11/20/2025, 1:46 PMJsonConvertException and not a ResponseException with the HttpResponse that I can parse into a different structure..Aleksei Tirman [JB]
11/20/2025, 2:01 PMNiclas Kron
11/20/2025, 2:15 PM.body<ConsentResponse> throws a JsonConvertException with cause MissingFieldException
/**
* {"errorCode": "42", "message": "something went wrong"}
*/
@Serializable
data class ErrorResponse(
val errorCode: String,
val message: String
)
/**
* {"hasGivenConsent": false}
*/
@Serializable
data class ConsentResponse(
val hasGivenConsent: Boolean
)
sealed class Result<out T, out E> {
data class Success<T>(val value: T) : Result<T, Nothing>()
data class Failure<E>(val error: E) : Result<Nothing, E>()
}
fun main(): Unit = runBlocking {
val client = HttpClient()
val result: Result<ConsentResponse, ErrorResponse> = try {
Result.Success(client.get("<https://example.com/v1/consent>").body<ConsentResponse>())
} catch (e: ResponseException) {
val errorResponse = e.response.body<ErrorResponse>()
Result.Failure(errorResponse)
}
println("result: $result")
}Niclas Kron
11/20/2025, 2:25 PMAleksei Tirman [JB]
11/21/2025, 9:12 AMAleksei Tirman [JB]
11/21/2025, 9:12 AMNiclas Kron
11/21/2025, 10:20 AM