You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter应用无法向Laravel后端数据库提交数据求助

Flutter提交数据到Laravel无响应的排查与修复

核心问题分析

Postman能正常调用接口,但Flutter应用无响应,结合代码来看,主要是Flutter端请求存在以下关键问题:


1. 登录/注册未保存认证Token

登录、注册接口成功后,Laravel会返回认证Token,但当前代码仅解析User对象,未将Token存入SharedPreferences,导致后续需要认证的接口(如创建帖子)无法携带有效Token,后端返回401未授权,若UI层未处理该错误,就会表现为应用无响应。

修复代码:
修改login方法的200状态分支:

case 200:
  final responseData = jsonDecode(response.body);
  apiResponse.data = User.fromJson(responseData);
  // 保存Token与用户ID到SharedPreferences
  SharedPreferences pref = await SharedPreferences.getInstance();
  await pref.setString('token', responseData['token']);
  await pref.setInt('userId', responseData['user']['id']);
  break;

修改register方法的200状态分支:

case 200:
  final responseData = jsonDecode(response.body);
  apiResponse.data = User.fromJson(responseData);
  // 保存Token与用户ID到SharedPreferences
  SharedPreferences pref = await SharedPreferences.getInstance();
  await pref.setString('token', responseData['token']);
  await pref.setInt('userId', responseData['user']['id']);
  break;

2. 模拟器网络地址错误

若使用Android模拟器,127.0.0.1指向模拟器自身,无法访问本地电脑的Laravel服务,需替换为10.0.2.2;iOS模拟器可直接使用localhost或127.0.0.1。

修复常量类:

const baseUrl = 'http://10.0.2.2:8000/api';
const loginUrl = 'http://10.0.2.2:8000/api/login';

3. 创建帖子接口422错误处理存在Bug

createPosts方法中,422错误的字段索引逻辑错误,导致无法正确获取后端返回的验证错误信息,甚至可能抛出异常:

// 错误代码
apiResponse.error = errors[errors.keys.elementAt(0)[0]];
// 正确代码
apiResponse.error = errors[errors.keys.elementAt(0)][0];

4. 异步调用未处理UI反馈

调用createPosts时,需用async/await处理异步逻辑,并及时向用户反馈结果,避免应用看起来无响应:

// 示例调用代码
void _submitPost() async {
  ApiResponse response = await createPosts(postBody, imageBase64);
  if (response.error != null) {
    ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(response.error!)));
  } else {
    ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('帖子创建成功')));
    // 后续操作:刷新帖子列表等
  }
}

内容的提问来源于stack exchange,提问作者Allan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:52:02