mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-02-08 17:22:05 +08:00
Add response headers to XHR response
Summary: This is code from https://github.com/facebook/react-native/pull/3062 with fix for support multiple values from qbig Closes https://github.com/facebook/react-native/pull/3709 Reviewed By: svcscm Differential Revision: D2595944 Pulled By: astreet fb-gh-sync-id: 2ff78de412f53932e29953b4e2ae6ff7be78eae3
This commit is contained in:
committed by
facebook-github-bot-4
parent
a33fe94dac
commit
fe42a28de1
@@ -14,6 +14,7 @@ import javax.annotation.Nullable;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.Callback;
|
||||
import com.facebook.react.bridge.GuardedAsyncTask;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
@@ -21,7 +22,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
|
||||
import com.squareup.okhttp.Headers;
|
||||
import com.squareup.okhttp.MediaType;
|
||||
@@ -184,7 +185,6 @@ public final class NetworkingModule extends ReactContextBaseJavaModule {
|
||||
if (mShuttingDown) {
|
||||
return;
|
||||
}
|
||||
// TODO(5472580) handle headers properly
|
||||
String responseBody;
|
||||
try {
|
||||
responseBody = response.body().string();
|
||||
@@ -193,7 +193,22 @@ public final class NetworkingModule extends ReactContextBaseJavaModule {
|
||||
callback.invoke(0, null, e.getMessage());
|
||||
return;
|
||||
}
|
||||
callback.invoke(response.code(), null, responseBody);
|
||||
|
||||
WritableMap responseHeaders = Arguments.createMap();
|
||||
Headers headers = response.headers();
|
||||
for (int i = 0; i < headers.size(); i++) {
|
||||
String headerName = headers.name(i);
|
||||
// multiple values for the same header
|
||||
if (responseHeaders.hasKey(headerName)) {
|
||||
responseHeaders.putString(
|
||||
headerName,
|
||||
responseHeaders.getString(headerName) + ", " + headers.value(i));
|
||||
} else {
|
||||
responseHeaders.putString(headerName, headers.value(i));
|
||||
}
|
||||
}
|
||||
|
||||
callback.invoke(response.code(), responseHeaders, responseBody);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user