gpt4 book ai didi

flutter - 使用 MultipartFile GetConnect 发送 FormData 时需要字段 "field"

转载 作者:行者123 更新时间:2023-12-05 06:49:43 24 4
gpt4 key购买 nike

我正在尝试使用 GetConnect 发出put 更新用户配置文件的请求。用户个人资料采用一些普通的 JSON 字段和个人资料图片的 MultipartFile

这是我的 ProfileProvider 类:

class ProfileProvider extends GetConnect {
Future<ProfileModel> updateProfile({
String name,
String email,
String address,
File avatar,
}) async {

final headers = {
"Authorization": "Bearer $token",
"Content-Type": "application/json",
"Accept": "application/json",
};

String fileName = avatar.path.split("/").last;
final form = FormData({
"name": name,
"email": email,
"address": address,
"avatar": MultipartFile(avatar, filename: fileName),
});

final response = await put(url, form, headers: headers);

if (response.statusCode == 200) {
final profileModel = ProfileModel.fromJson(response.bodyString);

return profileModel;
}
}
}

如您所见,我正在使用 FormData 将编码后的对象发送到 API。但响应显示字段nameemailaddress 是必需的,但我已经将表格发送给他们了。我在这里做错了什么? GetConnect 文档有一个类似的文件上传文档,但没有其他字段(即姓名、电子邮件、地址)。此外,如果我从 FormData 中省略 MultiartFile,它也能正常工作。

最佳答案

问题在于您的 body 类型。删除“表单数据”
试试下面的代码。

final form = {
"name": name,
"email": email,
"address": address,
"avatar": MultipartFile(avatar, filename: fileName),
};

关于flutter - 使用 MultipartFile GetConnect 发送 FormData 时需要字段 "field",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66548150/

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