From e23e6750e13aaa9c6f0398e66a65decf5adaeaf8 Mon Sep 17 00:00:00 2001 From: Volodymyr Buberenko Date: Fri, 24 Jan 2020 23:18:34 +0200 Subject: [PATCH 1/3] Fix for 0 size in response --- .../main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt b/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt index b33b2fc54..027a26155 100755 --- a/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt +++ b/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt @@ -162,7 +162,6 @@ class ChuckerInterceptor @JvmOverloads constructor( transaction.responseImageData = buffer.readByteArray() } } - transaction.responseContentLength = buffer.size() } } From 99d3ae5b0742a67d263de33e4a4984edc35c8da3 Mon Sep 17 00:00:00 2001 From: Volodymyr Buberenko Date: Fri, 24 Jan 2020 23:32:45 +0200 Subject: [PATCH 2/3] Create response copy for processing --- .../chuckerteam/chucker/api/ChuckerInterceptor.kt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt b/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt index 027a26155..c709f0978 100755 --- a/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt +++ b/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt @@ -47,24 +47,27 @@ class ChuckerInterceptor @JvmOverloads constructor( @Throws(IOException::class) override fun intercept(chain: Interceptor.Chain): Response { val request = chain.request() - val response: Response + val originalResponse: Response val transaction = HttpTransaction() processRequest(request, transaction) collector.onRequestSent(transaction) try { - response = chain.proceed(request) + originalResponse = chain.proceed(request) } catch (e: IOException) { transaction.error = e.toString() collector.onResponseReceived(transaction) throw e } - processResponse(response, transaction) + // Creating a copy of response to avoid problems with multiple interceptors + val responseCopy = originalResponse.newBuilder().build() + + processResponse(responseCopy, transaction) collector.onResponseReceived(transaction) - return response + return originalResponse } /** @@ -191,7 +194,7 @@ class ChuckerInterceptor @JvmOverloads constructor( } // Let's clone the response Buffer in order to don't cause an IllegalStateException: closed // if others interceptors are manipulating the body (see #192). - return response.body()?.source()?.buffer()?.clone() + return response.body()?.source()?.buffer() } companion object { From 2a51ad781fb536cb1a57304c80099451407bd271 Mon Sep 17 00:00:00 2001 From: Volodymyr Buberenko Date: Fri, 24 Jan 2020 23:53:10 +0200 Subject: [PATCH 3/3] Remove redundant comment --- .../main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt b/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt index c709f0978..67685fc22 100755 --- a/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt +++ b/library/src/main/java/com/chuckerteam/chucker/api/ChuckerInterceptor.kt @@ -192,8 +192,6 @@ class ChuckerInterceptor @JvmOverloads constructor( Log.w(LOG_TAG, "gzip encoded response was too long") } } - // Let's clone the response Buffer in order to don't cause an IllegalStateException: closed - // if others interceptors are manipulating the body (see #192). return response.body()?.source()?.buffer() }