我正在尝试执行简单的登录过程而没有成功。 一些细节:
我正在使用pub.dev中的组件:
import 'package:http/http.dart' as http;
我有一个按钮可以按下:
Widget loginBtn(BuildContext context) {
return SizedBox(
width: 30,
height: 30,
child: FlatButton(
padding: const EdgeInsets.all(5.0),
child: new Text(
"login",
style: new TextStyle(
fontSize: 12.0,
color: Colors.white,
fontWeight: FontWeight.w400,
),
),
color: Colors.red,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),
),
onPressed: () {
_loginPressed(context);
},
),
);
}
在媒体上调用的方法:
void _loginPressed(context) async {
final sended = {
"email": "testemail@testeamil.com",
"password": "xvbmsek330",
};
await login(sended).then((result) {
//
}).catchError((result) {}); //try to do login
}
和实现请求的未来:
Future<String> login(sended) async {
final params = {
"email": sended["email"],
"password": sended["password"],
};
var response = await http.post(
"http://serverurl.com/login.php",
body: params,
);
if (response.statusCode == 200) {
//success
var general = json.decode(response.body);
} else {
//error management
}
}
在这段代码中,自然会有一些在现实生活中不存在的硬编码值。 我可以与Web服务login.php正确地“对话”,因此在服务器端一切正常。 当HTTP(文件http.dart)库管理返回的数据时,麻烦就来了,我得到:
有人可以帮助我吗?我对“未来”元素的想法可能出了问题。