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

Flutter发送Post请求遇405错误(数据正确仍报错)

问题解决及学习资源建议

405状态码问题排查与修复

405状态码意味着当前请求方法(POST)不被目标API端点允许,按以下步骤处理:

  1. 先验证mocki.io端点的支持方法:用curl或Postman发送POST请求到你的_loginUrl,如果同样返回405,说明这个mock端点只配置了GET方法,需要去mocki.io重新创建一个支持POST的API。
  2. 修正请求代码的缺失项:即便端点支持POST,你的请求缺少Content-Type头,服务器无法识别你发送的JSON数据,修正后的代码如下:
class HttpService {

  static const _loginUrl = 'https://mocki.io/v1/d4867d8b-b5d5-4a48-a4ab-79131b5809b8';

  static login(cpf, password, context) async {
    Map<String, String> request = {"name": cpf, "city": password};
    final response = await http.post(
      Uri.parse(_loginUrl),
      body: jsonEncode(request),
      headers: {'Content-Type': 'application/json'}, // 新增JSON类型请求头
    );

    if (response.statusCode == 200) {
      await Navigator.push(
          context, MaterialPageRoute(builder: (context) => HomeScreen()));
    } else {
      await EasyLoading.showError(
          "Error Code : ${response.statusCode.toString()} $cpf $password");
    }
  }
}

学习资源推荐

Flutter网络请求

  • 官方文档的「发送网络请求」章节,系统学习http包的基础用法,以及dio第三方包的进阶用法
  • 国内视频平台的Flutter实战教程,找包含网络请求模块的内容,跟着实操登录、列表加载等场景

REST API基础

  • 研读《RESTful API设计指南》,重点理解HTTP请求方法的语义、状态码的含义、请求/响应头的作用
  • 计算机网络课程中的HTTP协议部分,掌握协议的核心规则,这是理解API交互的基础

Flask后端开发

  • Flask官方快速入门教程,从搭建第一个Hello World服务开始,逐步学习路由配置、请求参数解析、响应返回
  • 技术社区的Flask实战文章,跟着实现用户登录、数据增删改查等常见API场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:52:48