dio icon indicating copy to clipboard operation
dio copied to clipboard

How to POST zip file using application/octet-stream

Open arlakay opened this issue 2 years ago • 0 comments

I have issue to upload zip file: here my postman successfully return 200:

how to make request same like my postman in Dio.

Here my flutter code: `var directory = await getApplicationDocumentsDirectory(); final fp = File('${directory.path}/$basename.json.gz'); fp.writeAsBytesSync(compressedBody);

var fileUpload = await MultipartFile.fromFile(
  fp.path,
  filename: '$basename.json.gz',
  contentType: MediaType.parse('application/json'),
);

try {
  var result = await api.uploadData(
    true,
    fileUpload,
    options: Options(
      headers: <String, dynamic>{
        'Content-Encoding': 'gzip',
      },
    ),
  );
  return right(result);
} on DioError catch (e) {
  if (e.response?.statusCode == 500) {
    return left(const DataScoreFailure.internalServerError());
  }
  return left(const DataScoreFailure.unexpected());
} on Exception catch (e, s) {
  logger.wtf('Unexpected error when uploadFile', e, s);
  return left(DataScoreFailure.unexpected());
}`

and here my console log error : I/flutter ( 6030): I/flutter ( 6030): ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── I/flutter ( 6030): │ DioError [DioErrorType.other]: Converting object to an encodable object failed: Instance of 'MultipartFile' I/flutter ( 6030): │ #0 _JsonStringifier.writeObject (dart:convert/json.dart:794:7) I/flutter ( 6030): │ #1 _JsonStringStringifier.printOn (dart:convert/json.dart:983:17) I/flutter ( 6030): │ #2 _JsonStringStringifier.stringify (dart:convert/json.dart:968:5) I/flutter ( 6030): │ #3 JsonEncoder.convert (dart:convert/json.dart:345:30) I/flutter ( 6030): │ #4 JsonCodec.encode (dart:convert/json.dart:231:45) I/flutter ( 6030): │ #5 DefaultTransformer.transformRequest (package:dio/src/transformer.dart:68:21) package:dio/src/transformer.dart:68 I/flutter ( 6030): │ #6 DioMixin._transformData (package:dio/src/dio_mixin.dart:720:39) package:dio/src/dio_mixin.dart:720 I/flutter ( 6030): │ #7 DioMixin._dispatchRequest (package:dio/src/dio_mixin.dart:641:26) package:dio/src/dio_mixin.dart:641 I/flutter ( 6030): │ #8 DioMixin.fetch.<anonymous closure> (package:dio/src/dio_mixin.dart:590:7) package:dio/src/dio_mixin.dart:590 I/flutter ( 6030): │ #9 DioMixin.fetch._requestInterceptorWrapper.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:dio/src/dio_mixin.dart:502:28) package:dio/src/dio_mixin.dart:502 I/flutter ( 6030): │ #10 DioMixin.checkIfNeedEnqueue (package:dio/src/dio_mixin.dart:818:22) package:dio/src/dio_mixin.dart:818 I/flutter ( 6030): │ #11 DioMixin.fetch._requestInterceptorWrapper.<anonymous closure>.<anonymous closure> (package:dio/src/dio_mixin.dart:500:22) package:dio/src/dio_mixin.dart:500 I/flutter ( 6030): │ #12 new Future.<anonymous closure> (dart:async/future.dart:252:37) I/flutter ( 6030): │ #13 _rootRun (dart:async/zone.dart:1418:47) I/flutter ( 6030): │ #14 _CustomZone.run (dart:async/zone.dart:1328:19) I/flutter ( 6030): │ #15 _CustomZone.runGuarded (dart:async/zone.dart:1236:7) I/flutter ( 6030): │ #16 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1276:23) I/flutter ( 6030): │ #17 _rootRun (dart:async/zone.dart:1426:13) I/flutter ( 6030): │ #18 _CustomZone.run (dart:async/zone.dart:1328:19) I/flutter ( 6030): │ #19 _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1260:23) I/flutter ( 6030): │ #20 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15) I/flutter ( 6030): │ #21 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:395:19) I/flutter ( 6030): │ #22 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:426:5) I/flutter ( 6030): │ #23 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12) I/flutter ( 6030): │ I/flutter ( 6030): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ I/flutter ( 6030): │ #0 LoggingInterceptor.onError package:koyal_shared/…/networking/logging_interceptor.dart:46 I/flutter ( 6030): │ #1 DioMixin.fetch._errorInterceptorWrapper.<anonymous closure>.<anonymous closure>.<anonymous closure> package:dio/src/dio_mixin.dart:559 I/flutter ( 6030): │ #2 DioMixin.checkIfNeedEnqueue package:dio/src/dio_mixin.dart:818 I/flutter ( 6030): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ I/flutter ( 6030): │ 21:21:24.663 (+0:01:44.445088) I/flutter ( 6030): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ I/flutter ( 6030): │ 👾 Unknown Dio Error I/flutter ( 6030): └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── I/flutter ( 6030): *** DioError ***:

error screenshot:

Has anyone done this before? could you share what step i'm mistaken/missing? i'm using dio + retrofit

arlakay avatar Apr 23 '22 14:04 arlakay