Flutter如何将表单数据传递给api
Posted
技术标签:
【中文标题】Flutter如何将表单数据传递给api【英文标题】:Flutter how to pass form data to api 【发布时间】:2021-11-15 07:43:51 【问题描述】:我有一个表单可以从用户那里获取数据。目标是将表单数据作为对象传递给 Api。表格如下。
Form(
key: _formKey,
child: Column(
children: [
Seperator(),
TextField(
decoration: const InputDecoration(
hintText: 'Add a title',
),
),
Seperator(),
TextField(
decoration: const InputDecoration(
hintText: 'Add a description',
),
),
Seperator(),
TextField(
decoration: const InputDecoration(
hintText: 'Add a Price',
),
),
Seperator(),
TextField(
decoration: const InputDecoration(
hintText: 'Select Unit',
),
),
Button(
isProcessing: isProcessing,
name: 'Create Post',
onPressed: ()
final formdata = _formKey.currentState!.save();
createpost(formdata); // Api Function
,
]
// Api Function
createpost(AddPost formdata) async
try
final service = PostService();
final response =
await service.createpost(formdata);
catch (error)
setErrorMessage(error.toString());
如何将表单数据作为对象传递给 API 函数?
【问题讨论】:
你能分享你使用哪个客户端来做 api 的吗? 并为其添加代码 并添加将标头传递到您的发布请求的位置。如果您对其进行 jsonDecode 并将标头的类型指定为表单编码,那将解决您的问题。 @AsimJawad im 使用 dio 进行 api 调用 参考我的回答 here 希望它对您的回答有所帮助 我已将数据发送到 API 【参考方案1】:您可以在 Postman 中运行 API,并在您的 Flutter 应用中使用自动生成的代码。您还可以使用 link 将您的 curl 请求转换为邮递员请求,然后使用自动生成的代码
您也可以使用这个package 来传递表单数据。这是一个例子
var dio = Dio();
var formData = FormData.fromMap(
'name': 'wendux',
'age': 25,
'file': await MultipartFile.fromFile('./text.txt',filename:
'upload.txt')
);
var response = await dio.post('/info', data: formData);
【讨论】:
以上是关于Flutter如何将表单数据传递给api的主要内容,如果未能解决你的问题,请参考以下文章