flutter访问接口并返回值

本文介绍了一个密码重置功能的具体实现过程,包括实体类、模型类及界面交互的设计与编码。通过具体的代码示例展示了如何处理用户输入、调用API进行密码重置,并在界面反馈结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于访问接口,分的细可以分为page(接收访问值并渲染页面)、model(处理数据)、entity(实体类)、api(访问接口)

首先需要创建一个实体,我们快速创建,其中内容为正确返回格式

https://app.quicktype.io/

 

entity已经创建好,那么可以先写model

class RestPasswordViewModel extends BaseModel{
    
  //变量
  String _UserErrorText=null;

  RestPasswordViewModel({@required ApiUtil api}) : super(api: api);

  //方法
  Future<ResetPasswordEntity> reset_password(String username) async {
    setState(ViewState.Busy);
    //api中的方法
    ResetPasswordEntity _resetPassword= await api.resetPassword(username);
    setState(ViewState.Idle);
    return _resetPassword;
  }
  
  //方法
  void checkUserName(String text){
    if(text.isEmpty) {

      _UserErrorText = "This field is required.";
    } else {
      _UserErrorText = null;
    }
    notifyListeners();
  }
  //需要放出去,界面才能使用
  String get userErrorText => _UserErrorText;
}

其中api.resetPassword()还未写,所以需要在api中添加resetPassword方法

  Future<ResetPasswordEntity> resetPassword(String username) async {
    try {
      Map<String, dynamic> map = Map();
      map["userName"] = username;
      dio.options.contentType = "application/json";
      //请求路径AccountApi.resetPassword,参数data
      Response response = await dio.post(AccountApi.resetPassword, data: map);
      //自动封装成entityJSON对象
      ResetPasswordEntity data = ResetPasswordEntity.fromJson(response.data);
      print(data.toJson());//打印
      return data;
    } on DioError catch (err) {
      Log.e(err.message);
      throw err;
    }
  }

 底层已经完成,那么就是在界面上的使用了

class forgot_pwd_View extends StatefulWidget {
  @override
  _forgot_pwd_ViewStat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值