diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2017-10-26 16:15:59 -0700 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2017-10-26 16:15:59 -0700 |
commit | a2402aae8856af5ca340d81b4382890eb1951599 (patch) | |
tree | 59a4e3d0ee90f67b7a26eb8ff99c63534d2398ee | |
parent | f082bffc90902faac6e7f89deee50843875656d7 (diff) | |
download | qtlocation-mapboxgl-upstream/tvn-closable-strict-mode.tar.gz |
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java index e2626a026b..bb19195d1d 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java @@ -4,6 +4,7 @@ package com.mapbox.mapboxsdk.http; import android.content.Context; import android.content.pm.PackageInfo; import android.os.Build; +import android.support.annotation.NonNull; import android.text.TextUtils; import com.mapbox.mapboxsdk.BuildConfig; @@ -26,6 +27,7 @@ import okhttp3.HttpUrl; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; +import okhttp3.ResponseBody; import okhttp3.internal.Util; import timber.log.Timber; @@ -108,38 +110,40 @@ class HTTPRequest implements Callback { } @Override - public void onResponse(Call call, Response response) throws IOException { - if (response.isSuccessful()) { - Timber.v("[HTTP] Request was successful (code = %s).", response.code()); - } else { - // We don't want to call this unsuccessful because a 304 isn't really an error - String message = !TextUtils.isEmpty(response.message()) ? response.message() : "No additional information"; - Timber.d("[HTTP] Request with response code = %s: %s", response.code(), message); - } - - byte[] body; + public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { + ResponseBody responseBody = null; try { - body = response.body().bytes(); + if (response.isSuccessful()) { + Timber.v("[HTTP] Request was successful (code = %s).", response.code()); + } else { + // We don't want to call this unsuccessful because a 304 isn't really an error + String message = !TextUtils.isEmpty(response.message()) ? response.message() : "No additional information"; + Timber.d("[HTTP] Request with response code = %s: %s", response.code(), message); + } + + responseBody = response.body(); + if (responseBody != null) { + mLock.lock(); + if (mNativePtr != 0) { + nativeOnResponse(response.code(), + response.header("ETag"), + response.header("Last-Modified"), + response.header("Cache-Control"), + response.header("Expires"), + response.header("Retry-After"), + response.header("x-rate-limit-reset"), + responseBody.bytes()); + } + mLock.unlock(); + } } catch (IOException ioException) { onFailure(ioException); - // throw ioException; - return; } finally { - response.body().close(); - } - - mLock.lock(); - if (mNativePtr != 0) { - nativeOnResponse(response.code(), - response.header("ETag"), - response.header("Last-Modified"), - response.header("Cache-Control"), - response.header("Expires"), - response.header("Retry-After"), - response.header("x-rate-limit-reset"), - body); + if (responseBody != null) { + responseBody.close(); + } + response.close(); } - mLock.unlock(); } @Override |