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

Flutter发送OTP POST请求遇服务器错误,Postman可正常执行

解决Flutter发送OTP POST请求服务器错误问题

核心原因:缺少关键请求头

你的代码仅设置了Accept头,但使用json.encode发送JSON格式请求体时,必须告知服务器请求体的类型为JSON——Postman会自动添加Content-Type: application/json头,这就是为什么Postman能正常执行,而Flutter请求报错的关键差异。

修改后的代码

Future<dynamic> otp(
      {required String url, required int otp, required String email}) async {
    try {
      print(json.encode({"otp": otp, "email": email}));

      var response = await http.post(
        Uri.parse(_baseURL + url),
        headers: {
          "Accept": "application/json",
          "Content-Type": "application/json" // 新增该请求头
        },
        body: json.encode({"otp": otp, "email": email}),
      );
      print(response.body);
      if (response.statusCode == 200) {
        return OtpData.fromJson(json.decode(response.body));
      } else {
        print(response.statusCode);
        return OtpData(otp: 0000, email: email);
      }
    } catch (ex) {
      rethrow;
    }
  }

额外排查方向

  • 确认_baseURL + url拼接后的完整地址和Postman中的请求地址完全一致,避免路径拼写、域名差异问题
  • 查看response.body返回的具体错误信息,若仍报错,可根据错误内容进一步排查(比如参数格式是否与服务器要求完全匹配)

内容的提问来源于stack exchange,提问作者Abdel-elah Shorbaji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:03:13