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

Flutter对接Laravel API POST请求失败,求协助排查

Flutter调用Laravel登录API失败排查方案

核心问题1:模拟器网络地址指向错误

Android模拟器中127.0.0.1指向模拟器自身,而非运行Laravel服务的电脑主机。必须替换为以下两种地址之一:

  • 电脑的局域网IP(可通过ipconfig/ifconfig查询,例如192.168.3.10)
  • Android模拟器专用回环地址10.0.2.2(等价于主机的127.0.0.1)

修改AuthLogin.dart中的API地址:

Uri.parse('http://10.0.2.2:8000/api/v1/auth/login')

核心问题2:POST请求Body格式不匹配

你设置了Content-Type: application/json,但直接传入Map作为body时,http库会默认以form-data格式发送,导致Laravel无法正确解析JSON参数。必须用jsonEncode将Map转为JSON字符串:

更新POST请求代码:

// 先导入dart:convert包
import 'dart:convert';

// 修改请求部分
final response = await http.post(
  Uri.parse('http://10.0.2.2:8000/api/v1/auth/login'),
  headers: {'Content-Type': 'application/json'},
  body: jsonEncode({
    "email" : username,
    "password" : password
  })
);

无效尝试:GET请求带Body

HTTP规范中GET请求不应携带Body,Laravel的登录接口必然是为POST设计的,直接放弃GET方式的尝试。

辅助排查建议

  • 查看Flutter控制台打印的response.body,Laravel通常会返回具体错误信息(比如参数缺失、格式错误),可快速定位问题。
  • 确认Laravel的CORS配置允许模拟器请求:使用fruitcake/laravel-cors包,临时配置允许所有来源测试(生产环境再做限制)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:12:32