flutter - 如何使用 Dio 包在 Flutter 中的 formdata 中发送数组?

标签 flutter dart dio

我想发送一个包含 JSON 数组的复杂 JSON 对象的文件。我该怎么做? enter image description here

我想发送这种FormData。 以下是我的实现方式:

final data = {
  "id": 60,
  "first_name": "Amit",
  "last_name": "Sharma",
  "email": "j.purohit198@gmail.com",
  "phone_no": "1111111111",
  "addr": "Lko",
  "status": "VERIFIED",
  "total_funds": 0,
  "bankDetails": [
    {"name": "ASD", "acc": "123"},
    {"name": "ASDFG", "acc": "1234"}
  ]
};
if (file != null) {
  data['pic'] =
      MultipartFile.fromFileSync(file.path, filename: 'profile_image');
}
final formData = FormData.fromMap(data);

final formData = FormData.fromMap(data);

final res = await _dio
    .post(
      '$kBaseUrl$kUploadPlanterStory',
      options: Options(
        headers: headers,
        contentType: Headers.formUrlEncodedContentType,
      ),
      data: formData,
    )
    .catchError((e) => throw getFailure(e));

print(res);

}

最佳答案

目前您正在使用 urlEncoded 对整个 data map 进行编码,这不是您想要的。如果您想使用不同的序列化方法对请求的特定部分进行编码,则必须手动进行:


final data = {
  // urlEncoded fields
  // ...
  "bankDetails": jsonEncode([
    {"name": "ASD", "acc": "123"},
  ]),
};

//...
data: FormData.fromMap(data)

关于flutter - 如何使用 Dio 包在 Flutter 中的 formdata 中发送数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65735799/

相关文章:

Flutter Web - 从自定义画图保存图像 .png

flutter - 在 Flutter 中使用动画将项目从一个列表移动到另一个列表

flutter - 如何关闭特定的对话框

flutter - Flutter-文本字段中的初始值和用户输入使用不同的颜色

testing - 如何测试容器的宽度/高度大小

flutter - 从另一个 dart 文件调用函数

c# - 在 C# 中模拟方法级联

http - 如何在Flutter中使用DIO将多个文件,文件列表发布到服务器

Flutter:如何在上传文件时增加 onSendProgress 对流畅进度条动画的调用?

flutter - 客户端握手错误 : CERTIFICATE_VERIFY_FAILED Self signed certificate in flutter