如何在Flutter中使用MultipartRequest发送数组?

3

我正在使用Postman测试我的API,涉及IT技术。以下是需要翻译的内容:

这是我使用Postman作为数组进行API测试。

在这里输入图片描述

但是,我该如何使用MultipartRequest发送数组?

var uri = Uri.parse(Constants.BASEURL + Constants.KEYEORD_CREATE_TENANACY);
  Map<String, String> headers = {
    "Accept": "application/json",
    "Authorization": token
    };
   var request = new http.MultipartRequest("POST", uri);
   request.headers.addAll(headers);
   request.fields['property_usage'] = property_use;
   request.fields['unit_id'] = unitlist;               // here i want unit_id to array
   var response = await request.send();
   print("Tenancy Add Result: ${response.statusCode}");
    if (response.statusCode == 200) {
     print(response);
    }

你有没有找到解决这个问题的方法? - Taba
4个回答

3

'''

request.fields['unit_id[n]'] = "${arrUnitlist[n]}";


for(int i = 0; i < arrUnitlist; i++){
  request.fields['unit_id[$i]'] = '${arrUnitlist[i]}';
}

适合我


2

您可以打开Multipart定义,将final fields = <String,String>更改为final fields = <String,dynamic>或任何其他数据类型。


嗨,Turaab。谢谢你的回答,但是不是很清楚。你能不能提供一下代码?顺祝商祺。 - Elletlar

1
您可以像这样添加unit_id的数组数据:
var request = new http.MultipartRequest("POST", uri);
request.headers.addAll(headers);
request.fields['property_usage'] = property_use;
request.fields['unit_id[0]'] = "unitlist1";
request.fields['unit_id[1]'] = "unitlist2";
request.fields['unit_id[2]'] = "unitlist3";
var response = await request.send();

0

不可能的,request.fileds 是一个 Map<String,String>,所以你必须提供一个 String,而不是一个数组。你使用 MultipartRequest 有特定的原因吗?它用于将文件发送到服务器,如果你不这样做,你可以使用简单的 http 函数,比如 put,我认为那对你更有意义。从官方文档中获取更多细节 putMultipartRequest


1
是的,我正在将图像发送到服务器!如何解决这个问题? - Marzook

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接