我想不能将数据从Flutter仿真器发布到数据库。 这是我在运行模拟器并输入数据后得到的错误。
发生异常。 FormatException(FormatException:意外字符(在字符1处) ^ )
这是我的 api.dart 导入'dart:convert';
import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
class CallApi{
final String _url = 'http://10.2.2.0/voyceb/api/';
postData(data, apiUrl) async {
var fullUrl = _url + apiUrl + await _getToken();
return await http.post(
fullUrl,
body: jsonEncode(data),
headers: _setHeaders()
);
}
getData(apiUrl) async {
var fullUrl = _url + apiUrl + await _getToken();
return await http.get(
fullUrl,
headers: _setHeaders()
);
}
_setHeaders() => {
'Content-type' : 'application/json',
'Accept' : 'application/json',
};
_getToken() async {
SharedPreferences localStorage = await
SharedPreferences.getInstance();
var token = localStorage.getString('token');
return '?token=$token';
}
}
signup.dart
中显示的错误var res = await CallApi().postData(data, 'register');
var body = json.decode(res.body);
错误显示在
var body = json.decode(res.body);
在json.decode上。
我希望在模拟器中输入数据时将其插入数据库中。
答案 0 :(得分:0)
也许JSON编码和解码过程存在问题。
您可以使用此方法解决
var res = await CallApi().postData(data, 'register');
var encodeFirst = json.encode(res.body);
var data = json.decode(encodeFirst);