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

Flutter使用DIO发起POST请求报404错误,Postman测试正常求排查

问题分析与解决方案

你的代码触发404错误的核心原因是请求URL不符合HTTP规范,导致Dio无法正确定位到后端接口,具体修正点如下:

1. 必须添加HTTP/HTTPS协议头

Postman会自动为URL补充协议前缀(如http://),但Dio不会。你的请求URL缺少协议头,导致地址解析错误,无法找到目标资源。

修正后的请求代码示例:

final response = await dio.post(
  // 补充http协议+对应端口(比如XAMPP默认80端口,根据你的服务器配置调整)
  "http://127.0.0.1:80/toko_grosir_api/create.php",
  data: {
    'name': '${event.product.nameProduct}',
    'price': '${event.product.priceProduct}',
    'desc': '${event.product.descProduct}',
    'stock': '${event.product.stockProduct}',
    'date': '${event.product.dateProduct}',
    'category': '${event.product.categoryProduct}'
  },
  options: Options(
    contentType: Headers.formUrlEncodedContentType,
  ),
);

2. 模拟器/真机访问本地服务器的特殊地址

如果在模拟器或真机上运行Flutter项目,需注意本地服务器的访问地址:

  • Android模拟器:127.0.0.1指向模拟器自身,无法访问电脑的本地服务器,需替换为http://10.0.2.2:80/toko_grosir_api/create.php
  • iOS模拟器:可直接使用http://localhost:80/...或http://127.0.0.1:80/...
  • 真机:确保手机与电脑在同一局域网,使用电脑的局域网IP(如http://192.168.1.100:80/...),同时关闭电脑防火墙

3. 额外验证项

  • 确认PHP服务器(如XAMPP/WAMP)处于运行状态,且create.php文件路径与URL中的路径完全一致
  • 检查服务器端口是否与URL中的端口匹配(比如XAMPP默认是80,若修改过需对应调整)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:01:11