【问题标题】:Unhandled Exception: DioError PONSE]: Http status error [500]未处理的异常:DioError PONSE]:Http 状态错误 [500]
【发布时间】:2019-10-31 11:18:48
【问题描述】:

我让FormData使用dio包上传图片到数据库,但是我编译运行“flutter run”,出现错误。

我看到出现的错误是Http状态错误[500]的问题。

Dio dio = new Dio();
dio.options.headers = {
        'Content-type': 'multipart/form-data',
        'Accept': 'application/json'
      };

FormData formData = new FormData.fromMap({
          'name': image_name,
          'path': add_path + _uniq[0],
          'uuid': _uuid,
          'content_type': add_file + image_type,
          'file': _image[0],
          'record': null
       });

Map<String, dynamic> token_send = new Map<String, dynamic>();
        token_send = {'token': userGlobal['token']};
        response_data = await dio.post(
            host + apiVersion + "/formuploads/uploadformattachment",
            data: formData,
            queryParameters: token_send
        );

然后我通过“flutter run”运行它。然后终端出现错误如下:

E/flutter ( 2970): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: DioError [DioErrorType.RESPONSE]: Http status error [500]
E/flutter ( 2970): #0      DioMixin._dispatchRequest (package:dio/src/dio.dart:943:7)
E/flutter ( 2970): <asynchronous suspension>
E/flutter ( 2970): #1      DioMixin._request._interceptorWrapper.<anonymous closure>.<anonymous 
closure>.<anonymous closure> (package:dio/src/dio.dart:828:37)
E/flutter ( 2970): #2      DioMixin.checkIfNeedEnqueue (package:dio/src/dio.dart:1099:22)       
E/flutter ( 2970): #3      DioMixin._request._interceptorWrapper.<anonymous closure>.<anonymous 
closure> (package:dio/src/dio.dart:825:22)
E/flutter ( 2970): #4      new Future.<anonymous closure> (dart:async/future.dart:176:37)       
E/flutter ( 2970): #5      _rootRun (dart:async/zone.dart:1120:38)
E/flutter ( 2970): #6      _CustomZone.run (dart:async/zone.dart:1021:19)
E/flutter ( 2970): #7      _CustomZone.runGuarded (dart:async/zone.dart:923:7)
E/flutter ( 2970): #8      _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:963:23)
E/flutter ( 2970): #9      _rootRun (dart:async/zone.dart:1124:13)
E/flutter ( 2970): #10     _CustomZone.run (dart:async/zone.dart:1021:19)
E/flutter ( 2970): #11     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
E/flutter ( 2970): #12     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:21:15)
E/flutter ( 2970): #13     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:382:19)        
E/flutter ( 2970): #14     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:416:5)     
E/flutter ( 2970): #15     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)

【问题讨论】:

  • 服务器不喜欢某事并返回状态码 500,这通常表示“服务器错误”。如果您有权访问服务器,请检查其日志以查看它不喜欢的内容。如果您不这样做,请尝试使用 Postman 或 curl 之类的东西,直到您能够获得成功的响应,然后调整您的代码以匹配。如果您不知道如何进行必要的更改,请使用有效的邮递员/卷发详细信息更新问题。
  • @RichardHeap 遇到了同样的错误,在邮递员中我收到了发送 EMPTY FILE 的响应。但是在发送空字符串时在应用程序中出现错误。任何解决方案或解决方法?

标签: android post flutter dart dio


【解决方案1】:

尝试用这种方法包装你的文件

FormData formData = new FormData.fromMap({
          'name': image_name,
          'path': add_path + _uniq[0],
          'uuid': _uuid,
          'content_type': add_file + image_type,
          'file': await MultipartFile.fromFile('your file path', 'your file name with extention'),
          'record': null
});

【讨论】:

  • 我收到错误未处理异常:类型“字符串”不是类型“列表”的子类型
  • FormData formData 转换为var formData
猜你喜欢
  • 2020-03-22
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2016-12-12
  • 2021-08-31
  • 1970-01-01
  • 2022-11-29
相关资源
最近更新 更多