问题描述
我正在学习 Flutter 中的 api 和 http 请求,但我在发出 get 请求时遇到了问题
在我的项目中。我想从 api 中获取用户详细信息。但是当我运行它时,因为它在设备中没有显示任何内容,任何人都可以帮助我:这是我的示例代码:
[在此处输入图片说明][2]
json 文件:
[{"id":1,"nomcomplet":"firas","telephone":"20552954","datenaissance":"8\/01\/1998","email":"firas@gmail.com","password":"12847"}]
class User{
final String nomcomplet;
final String telephone;
final String datenaissance ;
final String email;
final String password;
User({this.nomcomplet,this.telephone,this.datenaissance,this.email,this.password});
factory User.fromJson(Map<String,dynamic> jsonUser) => User(
nomcomplet: jsonUser['nomcomplet'],telephone: jsonUser['telephone'],datenaissance: jsonUser['datenaissance'],email: jsonUser['email'],password: jsonUser['password'],);
Map<String,dynamic> toJson() => {
"nomcomplet": nomcomplet,"telephone": telephone,"datenaissance": datenaissance,"email": email,"password": password,};
}
code dart userwidget "Flutter"
import 'dart:convert';
import 'package:Flutter/material.dart';
import 'package:http/http.dart' as http;
import 'usermodel.dart';
import 'homepage.dart';
class user extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).scaffoldBackgroundColor,elevation: 0.0,leading: IconButton(
icon: Icon(
Icons.arrow_back,color: Colors.blue,),onpressed: () { Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) => Home ()));},body: Center(
child: SingleChildScrollView(
child: Form(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,children: [
Text(
"Compte",style: TextStyle(fontSize: 40,fontWeight: FontWeight.w500),SizedBox(
height: 10,FutureBuilder<User>(
future: getUser(),builder: (context,snapshot){
if(snapshot.hasData)
if (snapshot.connectionState == ConnectionState.done)
if (snapshot.data != null) {
{
return SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(12.0),child: Column(
children: <Widget>[
Card(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,children: <Widget>[
ListTile(
title: Text("NomComplet"),subtitle: Text(" ${snapshot.data.nomcomplet}"),ListTile(
title: Text("Téléphone"),subtitle: Text(" ${snapshot.data.telephone}"),ListTile(
title: Text("Date de naissance"),subtitle: Text(" ${snapshot.data.datenaissance}"),ListTile(
title: Text("Email"),subtitle: Text(" ${snapshot.data.email}"),ListTile(
title: Text("Mot de passe"),subtitle: Text(" ${snapshot.data.password}",))]))])));}
}
else if(snapshot.hasError){
return Text(snapshot.error.toString());
}
return CircularProgressIndicator();
},]),))));
}
}
// Function to get the JSON data
Future<User> getUser() async{
const url = 'http://url/api/Users';
final response = await http.get(url);
if(response.statusCode == 200){
final jsonUser = jsonDecode(response.body);
return User.fromJson(jsonUser);
}else{
throw Exception();
}
}
[1]: https://i.stack.imgur.com/GSh4g.jpg
[2]: https://i.stack.imgur.com/k7BUE.jpg
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)