【问题标题】:How to get return POST API in Flutter如何在 Flutter 中获取返回的 POST API
【发布时间】:2019-05-20 18:23:21
【问题描述】:

我需要你的帮助。我一直在关注 Login App using REST API and SQFLite 的 POST API 教程,但在调用请求后我无法获得任何回报。请在下面更正我的代码。

login_presenter.dart

doLogin(String username, String password) {
api.callAPI(username, password).then((Post user) {
  _view.onLoginSuccess(user);
}).catchError((Exception error) => _view.onLoginError(error.toString()));}

rest_ds.dart

Future<User> login(String username, String password) {
return _netUtil.post(LOGIN_URL, body: {
  "username": username,
  "password": password
}).then((dynamic res) {
  print(res.toString());
  if(res["error"]) throw new Exception(res["error_msg"]);
  return new User.map(res["user"]);
});

}

我从 ParsingJSON-Flutter 获得的第二个教程,错误 Object.noSuchMethod 总是指向 _presenter.doLogin(_username, _password);,这意味着我没有联系到演示者?感谢您的帮助。

【问题讨论】:

    标签: api post login dart flutter


    【解决方案1】:

    您应该直接从 response.body 解析 JSON,而不是直接解析正文。

    Future<User> login(String username, String password) {
    return _netUtil.post(LOGIN_URL, body: {
      "username": username,
      "password": password
    }).then((response) {
          //check response status, if response status OK
          print("Response Status : $res");
          if(response.statusCode == 200){
            var data = json.decode(response.body);
    
            if(data.length>0){
              //Convert your JSON to Model here
            }
            else{
              //Get Your ERROR message's here
              var errorMessage = data["error_msg"];
            }
          }
    });
    

    【讨论】:

    • 请在您的答案中添加一些上下文
    猜你喜欢
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    相关资源
    最近更新 更多