|
@@ -220,8 +220,8 @@ public class RNFetchBlobReq extends BroadcastReceiver implements Runnable {
|
220
|
220
|
responseFormat = ResponseFormat.UTF8;
|
221
|
221
|
}
|
222
|
222
|
else {
|
223
|
|
- builder.header(key, value);
|
224
|
|
- mheaders.put(key, value);
|
|
223
|
+ builder.header(key.toLowerCase(), value);
|
|
224
|
+ mheaders.put(key.toLowerCase(), value);
|
225
|
225
|
}
|
226
|
226
|
}
|
227
|
227
|
}
|
|
@@ -304,9 +304,9 @@ public class RNFetchBlobReq extends BroadcastReceiver implements Runnable {
|
304
|
304
|
clientBuilder.addNetworkInterceptor(new Interceptor() {
|
305
|
305
|
@Override
|
306
|
306
|
public Response intercept(Chain chain) throws IOException {
|
307
|
|
- redirects.add(chain.request().url().toString());
|
308
|
|
- return chain.proceed(chain.request());
|
309
|
|
- }
|
|
307
|
+ redirects.add(chain.request().url().toString());
|
|
308
|
+ return chain.proceed(chain.request());
|
|
309
|
+ }
|
310
|
310
|
});
|
311
|
311
|
// Add request interceptor for upload progress event
|
312
|
312
|
clientBuilder.addInterceptor(new Interceptor() {
|
|
@@ -500,32 +500,11 @@ public class RNFetchBlobReq extends BroadcastReceiver implements Runnable {
|
500
|
500
|
// It uses customized response body which is able to report download progress
|
501
|
501
|
// and write response data to destination path.
|
502
|
502
|
resp.body().bytes();
|
503
|
|
-
|
504
|
503
|
} catch (Exception ignored) {
|
505
|
504
|
// ignored.printStackTrace();
|
506
|
505
|
}
|
507
|
506
|
this.destPath = this.destPath.replace("?append=true", "");
|
508
|
|
-
|
509
|
|
- try {
|
510
|
|
- long expectedLength = resp.body().contentLength();
|
511
|
|
- // when response contains Content-Length, check if the stream length is correct
|
512
|
|
- if(expectedLength > 0) {
|
513
|
|
- long actualLength = new File(this.destPath).length();
|
514
|
|
- if(actualLength != expectedLength) {
|
515
|
|
- callback.invoke("RNFetchBlob failed to write data to storage : expected " + expectedLength + " bytes but got " + actualLength + " bytes", null);
|
516
|
|
- }
|
517
|
|
- else {
|
518
|
|
- callback.invoke(null, RNFetchBlobConst.RNFB_RESPONSE_PATH, this.destPath);
|
519
|
|
- }
|
520
|
|
- }
|
521
|
|
- else {
|
522
|
|
- callback.invoke(null, RNFetchBlobConst.RNFB_RESPONSE_PATH, this.destPath);
|
523
|
|
- }
|
524
|
|
- }
|
525
|
|
- catch (Exception err) {
|
526
|
|
- callback.invoke(err.getMessage());
|
527
|
|
- err.printStackTrace();
|
528
|
|
- }
|
|
507
|
+ callback.invoke(null, RNFetchBlobConst.RNFB_RESPONSE_PATH, this.destPath);
|
529
|
508
|
break;
|
530
|
509
|
default:
|
531
|
510
|
try {
|
|
@@ -536,7 +515,7 @@ public class RNFetchBlobReq extends BroadcastReceiver implements Runnable {
|
536
|
515
|
break;
|
537
|
516
|
}
|
538
|
517
|
// if(!resp.isSuccessful())
|
539
|
|
- resp.body().close();
|
|
518
|
+ resp.body().close();
|
540
|
519
|
releaseTaskResource();
|
541
|
520
|
}
|
542
|
521
|
|
|
@@ -578,7 +557,7 @@ public class RNFetchBlobReq extends BroadcastReceiver implements Runnable {
|
578
|
557
|
}
|
579
|
558
|
WritableArray redirectList = Arguments.createArray();
|
580
|
559
|
for(String r : redirects) {
|
581
|
|
- redirectList.pushString(r);
|
|
560
|
+ redirectList.pushString(r);
|
582
|
561
|
}
|
583
|
562
|
info.putArray("redirects", redirectList);
|
584
|
563
|
info.putMap("headers", headers);
|
|
@@ -629,7 +608,8 @@ public class RNFetchBlobReq extends BroadcastReceiver implements Runnable {
|
629
|
608
|
private String getHeaderIgnoreCases(HashMap<String,String> headers, String field) {
|
630
|
609
|
String val = headers.get(field);
|
631
|
610
|
if(val != null) return val;
|
632
|
|
- return headers.get(field.toLowerCase()) == null ? "" : headers.get(field.toLowerCase());
|
|
611
|
+ String lowerCasedValue = headers.get(field.toLowerCase());
|
|
612
|
+ return lowerCasedValue == null ? "" : lowerCasedValue;
|
633
|
613
|
}
|
634
|
614
|
|
635
|
615
|
private void emitStateEvent(WritableMap args) {
|