diff --git a/README.md b/README.md index 6824cb4..7cb2a16 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ doUpload(){ |---|---|---|---|---| |`url`|string|required|URL to upload to|`http://my.server/api/upload`| |`method(only iOS)`|string|optional|HTTP method, values: [PUT,POST], default: POST|`POST`| -|`headers(only iOS)`|object|optional|HTTP headers|`{ 'Accept': 'application/json' }`| +|`headers`|object|optional|HTTP headers|`{ 'Accept': 'application/json' }`| |`params(iOS)`|object|optional|Query parameters|`{ 'user_id': 1 }`| |`params(Android)`|object|optional|Query parameters|`{ 'user_id': '1' }`
only support string value. You can't use int, boolean, etc..| |`files`|array|required|Array of file objects to upload. See below.| `[{ name: 'file', filename: 'image1.png', filepath: 'assets-library://...', filetype: 'image/png' } ]` | diff --git a/android/src/main/java/com/burlap/filetransfer/FileTransferModule.java b/android/src/main/java/com/burlap/filetransfer/FileTransferModule.java index e0eb5d4..6a9d823 100644 --- a/android/src/main/java/com/burlap/filetransfer/FileTransferModule.java +++ b/android/src/main/java/com/burlap/filetransfer/FileTransferModule.java @@ -33,6 +33,7 @@ import okhttp3.MediaType; import okhttp3.MultipartBody; +import okhttp3.Request.Builder; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; @@ -139,8 +140,22 @@ public void onRequestProgress(long bytesWritten, long contentLength) { } }); - Request request = new Request.Builder() - .header("Accept", "application/json") + Builder builder = new Request.Builder(); + if (options.hasKey("headers")) { + ReadableMap data = options.getMap("headers"); + ReadableMapKeySetIterator iterator = data.keySetIterator(); + + while(iterator.hasNextKey()) { + String key = iterator.nextKey(); + if(ReadableType.String.equals(data.getType(key))) { + builder.addHeader(key, data.getString(key)); + } + } + } else { + builder.addHeader("Accept", "application/json"); + } + + Request request = builder .url(url) .post(monitoredRequest) .build();