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 1156aa2fd195ff..728acf7fe99f62 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 @@ -136,7 +136,7 @@ public void sendRequest( requestBuilder.headers(requestHeaders); if (data == null) { - requestBuilder.method(method, null); + requestBuilder.method(method, RequestBodyUtil.getEmptyBody(method)); } else if (data.hasKey(REQUEST_BODY_KEY_STRING)) { if (contentType == null) { onRequestError(requestId, "Payload is set but no content-type header specified"); diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.java b/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.java index 7ce69c37e2d99a..f834120acaf15b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.java @@ -27,6 +27,7 @@ import com.squareup.okhttp.RequestBody; import com.squareup.okhttp.internal.Util; import okio.BufferedSink; +import okio.ByteString; import okio.Okio; import okio.Source; @@ -112,4 +113,15 @@ public void writeTo(BufferedSink sink) throws IOException { } }; } + + /** + * Creates a empty RequestBody if required by the http method spec, otherwise use null + */ + public static RequestBody getEmptyBody(String method) { + if (method.equals("POST") || method.equals("PUT") || method.equals("PATCH")) { + return RequestBody.create(null, ByteString.EMPTY); + } else { + return null; + } + } }