From 306a1fe7bdc5d71e83393253801927ca2c964ab6 Mon Sep 17 00:00:00 2001 From: jbyrneie Date: Mon, 11 Feb 2019 11:25:00 +0000 Subject: [PATCH] Return all Cookies in a response - NOT JUST ONE --- .../modules/network/NetworkingModule.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java index 297cd1ef4ff2fc..9f24dad23df6de 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java @@ -446,18 +446,23 @@ private synchronized void cancelAllRequests() { private static WritableMap translateHeaders(Headers headers) { WritableMap responseHeaders = Arguments.createMap(); - for (int i = 0; i < headers.size(); i++) { + HashMap responseHeadersMap = new HashMap<>(); + + 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)); + String headerValue = headers.value(i); + + if(responseHeadersMap.containsKey(headerName)) { + String existingValueForHeaderName = responseHeadersMap.get(headerName); + responseHeadersMap.put(headerName, existingValueForHeaderName + ", " + headerValue); + responseHeaders.putString(headerName, existingValueForHeaderName + ", " + headerValue); } else { - responseHeaders.putString(headerName, headers.value(i)); - } - } - return responseHeaders; + responseHeadersMap.put(headerName, headerValue); + responseHeaders.putString(headerName, headerValue); + } + } + + return responseHeaders; } @ReactMethod