From 9d006bce3df25b77b76b42e963771456110a6b39 Mon Sep 17 00:00:00 2001 From: maxli Date: Mon, 13 Nov 2023 17:52:34 +0800 Subject: [PATCH] fix(android): use promise.reject when fetch res failed --- .../nativemodules/network/NetworkModule.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/framework/android/src/main/java/com/tencent/mtt/hippy/modules/nativemodules/network/NetworkModule.java b/framework/android/src/main/java/com/tencent/mtt/hippy/modules/nativemodules/network/NetworkModule.java index 77ba1d25862..945e1cc31fa 100644 --- a/framework/android/src/main/java/com/tencent/mtt/hippy/modules/nativemodules/network/NetworkModule.java +++ b/framework/android/src/main/java/com/tencent/mtt/hippy/modules/nativemodules/network/NetworkModule.java @@ -34,7 +34,6 @@ import com.tencent.mtt.hippy.modules.nativemodules.HippyNativeModuleBase; import com.tencent.mtt.hippy.runtime.builtins.JSObject; import com.tencent.vfs.ResourceDataHolder; -import com.tencent.vfs.ResourceDataHolder.TransferType; import com.tencent.vfs.VfsManager; import com.tencent.vfs.VfsManager.FetchResourceCallback; import java.nio.charset.StandardCharsets; @@ -54,7 +53,7 @@ public NetworkModule(HippyEngineContext context) { } @SuppressWarnings("deprecation") - private void normalizeRequestHeaders(@NonNull HippyMap headers, + protected void normalizeRequestHeaders(@NonNull HippyMap headers, @NonNull HashMap requestHeaders) { Set> entrySet = headers.entrySet(); for (Entry entry : entrySet) { @@ -82,7 +81,7 @@ private void normalizeRequestHeaders(@NonNull HippyMap headers, } @SuppressWarnings("deprecation") - private void normalizeRequest(@NonNull HippyMap request, + protected void normalizeRequest(@NonNull HippyMap request, @NonNull HashMap requestHeaders, @NonNull HashMap requestParams) throws IllegalStateException { Set> entrySet = request.entrySet(); @@ -103,7 +102,7 @@ private void normalizeRequest(@NonNull HippyMap request, } } - private void handleFetchResponse(@NonNull ResourceDataHolder dataHolder, Promise promise) + protected void handleFetchResponse(@NonNull ResourceDataHolder dataHolder, Promise promise) throws IllegalStateException { JSObject responseObject = new JSObject(); int statusCode = 0; @@ -151,12 +150,12 @@ public void fetch(final HippyMap request, final Promise promise) { try { normalizeRequest(request, requestHeaders, requestParams); } catch (Exception e) { - promise.resolve(e.getMessage()); + promise.reject(e.getMessage()); return; } final String uri = requestParams.get(HTTP_URL); if (TextUtils.isEmpty(uri)) { - promise.resolve("Get url parameter failed!"); + promise.reject("Get url parameter failed!"); return; } vfsManager.fetchResourceAsync(uri, requestHeaders, requestParams, @@ -168,12 +167,13 @@ public void onFetchCompleted(@NonNull ResourceDataHolder dataHolder) { try { handleFetchResponse(dataHolder, promise); } catch (IllegalStateException e) { - promise.resolve( - "Handle response failed: " + dataHolder.errorMessage); + promise.reject( + "Handle response failed: " + e.getMessage()); } } else { - promise.resolve( - "Load remote resource failed: " + dataHolder.errorMessage); + String error = TextUtils.isEmpty(dataHolder.errorMessage) + ? "Load remote resource failed!" : dataHolder.errorMessage; + promise.resolve(error); } dataHolder.recycle(); }