【问题标题】:Flutter http.post body is an empty object on nodejs?Flutter http.post body 是 nodejs 上的空对象?
【发布时间】:2022-04-12 17:42:31
【问题描述】:
我的 Flutter http.post 请求正在向我的 Node.js 服务器发送一个空正文。这是我的前端代码:
var response = await http.post(Uri.parse('$host/api/new'),
body: {
'id': '$id',
'token': token
});
帖子正在到达我的 node.js 服务器,但正文是一个空对象。我做错了什么?
【问题讨论】:
标签:
node.js
flutter
http
flutter-http
【解决方案1】:
将此添加到发布请求中为我修复了它:
headers: {
HttpHeaders.contentTypeHeader: 'application/json',
},
然后在主体周围添加这个:
jsonEncode({ ... })
然后导入这个:
import 'dart:io';
【解决方案2】:
尝试关注。
在后端请求中包含标头以了解以 json 格式发送的数据,并将数据编码为 json。
import 'package:http/http.dart' as http;
import 'dart:convert';
static final client = http.Client();
static Future<dynamic> someFunctionName() async {
//parse URL
var parsedUrl = Uri.parse(URL);
// define headers
Map<String, String> postHeaders = {"Content-Type": "application/json"};
// json encode map
encodedBody = json.encode({'id': '$id','token': token})
// execute http post
var response = await client.post(parsedUrl, headers: postHeaders, body: encodedBody);
print('network_handler.dart - response.body = ${response.body}');
return response;
}