Flutter:http 包 - 获取请求失败

问题描述

我正在学习 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 (将#修改为@)