Bläddra i källkod

Change format builder function

Prevent app crash when form data contains undefined data field #90 .
Ben Hsieh 8 år sedan
förälder
incheckning
35973e24e4
1 ändrade filer med 7 tillägg och 6 borttagningar
  1. 7
    6
      src/android/src/main/java/com/RNFetchBlob/RNFetchBlobBody.java

+ 7
- 6
src/android/src/main/java/com/RNFetchBlob/RNFetchBlobBody.java Visa fil

@@ -242,10 +242,10 @@ public class RNFetchBlobBody extends RequestBody{
242 242
         ArrayList<FormField> list = new ArrayList<>();
243 243
         ReactApplicationContext ctx = RNFetchBlob.RCTContext;
244 244
         for(int i = 0;i < form.size(); i++) {
245
-            ReadableMap field = form.getMap(i);
246
-            list.add(new FormField(field));
247
-            String data = field.getString("data");
248
-            if (field.hasKey("filename")) {
245
+            FormField field = new FormField(form.getMap(i));
246
+            list.add(field);
247
+            String data = field.data;
248
+            if (field.filename != null) {
249 249
                 // upload from storage
250 250
                 if (data.startsWith(RNFetchBlobConst.FILE_PREFIX)) {
251 251
                     String orgPath = data.substring(RNFetchBlobConst.FILE_PREFIX.length());
@@ -274,7 +274,7 @@ public class RNFetchBlobBody extends RequestBody{
274 274
             }
275 275
             // data field
276 276
             else {
277
-                total += field.getString("data").length();
277
+                total += field.data != null ? field.data.length() : 0;
278 278
             }
279 279
         }
280 280
         contentLength = total;
@@ -301,8 +301,9 @@ public class RNFetchBlobBody extends RequestBody{
301 301
             else {
302 302
                 mime = filename == null ? "text/plain" : "application/octet-stream";
303 303
             }
304
-            if(rawData.hasKey("data"))
304
+            if(rawData.hasKey("data")) {
305 305
                 data = rawData.getString("data");
306
+            }
306 307
         }
307 308
     }
308 309