android - Flutter 表单数据发布问题
问题描述
我想将数据作为 FormData 发送到服务器,但在 Flutter 中找不到任何方法。毫无疑问,flutter 支持表单数据类型但如何实现。谢谢
解决方案
这个链接可以帮助你
https://pub.dev/documentation/http/latest/http/MultipartRequest-class.html
或者,在我的一个项目中,我使用了以下代码
var request = new http.MultipartRequest("POST", Uri.parse('http://...'));
Map<String, String> headers = {"Authorization": 'Bearer $token'};//<-- create header
request.headers.addAll(headers); // <-- add header
if (imageFile != null) { //<-- add file (File imageFile)
var stream = new http.ByteStream(imageFile.openRead());
var length = await imageFile.length();
var multipartFile = new http.MultipartFile('FileUplod', stream, length,
filename: basename(imageFile.path));
request.files.add(multipartFile);
}
request.fields['title'] = 'title'; //<--add text item
request.fields['id'] = '12225';
var response = await httpFromData(request);
var responses = await http.Response.fromStream(response);
//json.decode(responses.body) <-- for decode request body if needed
推荐阅读
- python-3.x - 如何在 2d 嵌套 for 循环理解中成为 Pythonic
- jquery - jQuery:无法获取同名选择框的值
- reactjs - FlatList 没有被渲染
- javascript - 无法识别的内容安全策略指令“reflected-xss”
- javascript - DataTables:如何将文本和水平滚动条包装在一起
- java - 通过字段进行杰克逊多态反序列化
- node.js - 在循环内返回承诺不会停止循环
- php - PHP cURL 如何得到一个页面?
- react-native - 为什么我无法打开我的 Flatlist?
- security - CngKey 为机器密钥分配权限