From 55cd89a0e54bcc915511318693b660a5a21b6949 Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 8 Mar 2023 21:31:57 +0800 Subject: [PATCH] Fix body consumed twice --- .../java/com/hippo/ehviewer/client/EhEngine.kt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt index 77d26c670..fc7e0c10a 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt @@ -123,11 +123,11 @@ object EhEngine { } @Suppress("NOTHING_TO_INLINE") - private inline fun Result.getOrThrowExactly(response: Response?): T { + private inline fun Result.getOrThrowExactly(response: Response?, body: String?): T { return runCatching { getOrThrow() }.onFailure { - rethrowExactly(response?.code ?: -1, response?.headers, response?.body?.string(), it) + rethrowExactly(response?.code ?: -1, response?.headers, body, it) }.getOrThrow() } @@ -147,9 +147,10 @@ object EhEngine { .post(builder.build()) .build() return okHttpClient.newCall(request).executeAsync().use { response -> + val body = response.body.string() runCatching { - SignInParser.parse(response.body.string()) - }.getOrThrowExactly(response) + SignInParser.parse(body) + }.getOrThrowExactly(response, body) } } @@ -218,9 +219,10 @@ object EhEngine { Log.d(TAG, url) val request = EhRequestBuilder(url, referer).build() return okHttpClient.newCall(request).executeAsync().use { response -> + val body = response.body.string() runCatching { - GalleryListParser.parse(response.body.string()) - }.getOrThrowExactly(response) + GalleryListParser.parse(body) + }.getOrThrowExactly(response, body) }.apply { fillGalleryList(galleryInfoList, url, true) }