gpt4 book ai didi

flutter - 我想在 flutter 中使用Dio POST/PATCH Map >以及ImageFile

转载 作者:行者123 更新时间:2023-12-03 03:51:10 27 4
gpt4 key购买 nike

我想将此JSON文件发送到API-

 {
"speciality": [7,2]
}
我的工作:
    class Doctor {
dynamic specialities;

Doctor({
this.specialities,
});

Map<String,dynamic>toJson()=>{
"speciality": List<dynamic>.from(specialities.map((x) => x)),
};
}



因此,当我使用http.patch时,它工作正常(下面的代码)。我的问题是使用Dio包如何做同样的事情,因为我正在使用MuiltipartFile。
response = await http.patch(
Uri.encodeFull(fullUrl),
body: jsonEncode(doctor.toJson()),//jsonEncode(data),
headers: {
'Content-type' : 'application/json',
'Accept' : 'application/json',
'Authorization' : 'Token $token',
},
);
我尝试使用Dio代码(如下),但在控制台中没有出现错误,但未成功修补。
updateDoctorInformation(Doctor doctor,token) async{
Dio dio = new Dio();
var formData = FormData();
formData = FormData.fromMap(doctor.toJson());

Response response = await dio.patch(
Uri.encodeFull(fullUrl),
data: formData,
options: Options(
followRedirects: false,
validateStatus: (status) {
return status < 500;
},
headers: {
'Content-type' : 'multipart/form-data',
'Accept' : '*/*',
'Authorization' : 'Token $token',
},
)).catchError((onError){
print(onError.toString());
}).whenComplete(() => print("completed"));
print(response.data);
return response;
}

我需要Dio码更正。提前致谢。

最佳答案

我找到了一种单独添加的方法。

if(doctor.specialities !=null){
for(int i=0;i<doctor.specialities.length;i++){
formData.fields.add(
MapEntry("speciality",doctor.specialities[i].toString())
);
}
}
尽管如此,我仍在寻找更好的解决方案,例如使用上面的toJson

关于flutter - 我想在 flutter 中使用Dio POST/PATCH Map <String,List <int >>以及ImageFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63379536/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com