flutter - 为什么 Flutter http POST 请求没有响应
问题描述
我想用以下代码使登录系统颤抖:
api/api.dart
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
class CallApi {
final String _url = 'http://10.0.2.2:8000/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';
}
}
login_screen.dart
void _login() async {
var data = {
'email': mailController.text,
'password': passwordController.text
};
var res = await CallApi().postData(data, 'login');
var body = json.decode(res.body);
if (body['success']) {
SharedPreferences localStorage = await SharedPreferences.getInstance();
localStorage.setString('token', body['token']);
localStorage.setString('user', json.encode(body['user']));
Navigator.push(
context, new MaterialPageRoute(builder: (context) => HomePage()));
} else {
_showMsg(body['message']);
}
}
问题是这行不通。并且在试图找到错误的位置后,我发现下面的代码没有返回任何东西
postData(data, apiUrl) async {
........
return await http.post(fullUrl,
body: jsonEncode(data), headers: _setHeaders());
}
不知道具体原因,请帮帮我
解决方案
推荐阅读
- django - django queryset 注释子表中的所有字段
- python - 在 RFECV scikit-learn 中获取功能
- python - 重塑熊猫df:将值行转换为布尔矩阵
- reactjs - React.js - update component immediately on onChange event
- go - 函数名称前带有下划线的结构标记
- maven - 如何从没有主类的 Maven 制作可执行的 jar 文件
- python - 一次处理一批图像的时间几乎等于按顺序依次处理它们
- reactjs - Jest 和 Enzyme 中的“无法读取属性包括未定义”错误
- html - svg 不同的渲染结果导致 chrome 和 safari 具有相同的 linearGradient id
- python - 如何使用原始推文制作新的数据框