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

Flutter调用API时如何将List<String>作为值传入JSON请求体

Flutter POST接口调用与Postman结果不一致问题解决方案

你遇到的是Flutter接口调试的高频问题,核心原因是代码侧的请求格式、配置和Postman的实际请求没有完全对齐,按以下步骤排查即可解决:

Postman传参示例

  • 首先对齐请求传参格式与Content-Type
    先核对Postman中选中的传参类型,不同类型对应的Flutter写法完全不同,写错格式100%调用失败:
    • 若选的是form-data:不要直接传入原生Map作为请求体,需要用FormData构造参数,不要手动硬编码Content-Type请求头,否则会丢失multipart格式必须的boundary分隔符,导致后端解析失败
    • 若选的是x-www-form-urlencoded:需要将请求头Content-Type设为application/x-www-form-urlencoded,参数不要转JSON,直接传入键值对Map即可
    • 若选的是raw下的JSON格式:需要将请求头Content-Type设为application/json,参数必须用jsonEncode()转成JSON字符串后再传入
  • 核对参数细节一致性

    重点检查:Postman中参数是否全部勾选、参数名是否存在前后空格、数字/布尔类型参数是否在代码中误传为字符串、是否遗漏Postman中配置的鉴权头/Cookie/固定请求头,Postman会自动做宽松的类型兼容,后端校验严格时类型不匹配会直接返回错误

  • 本地调试地址注意事项
    如果你是在本地跑后端服务做调试:安卓模拟器访问宿主机本地服务不能用127.0.0.1/localhost,要替换为10.0.2.2;iOS模拟器可以正常使用localhost

可直接复用的代码示例

以下是最常用的Dio库调用示例(优先用Dio,官方http库封装度低容易踩编码坑),先在pubspec.yaml中添加依赖dio: ^5.4.0后执行flutter pub get。

form-data格式调用示例

import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';

Future<void> fetchPostData() async {
  final dio = Dio();
  // 在这里配置和Postman一致的请求头,比如鉴权Token,不要手动写Content-Type
  dio.options.headers = {
    "Authorization": "你的接口鉴权值,无鉴权可删除本段"
  };

  // 构造和Postman完全一致的键值对参数
  final requestData = FormData.fromMap({
    "key1": "对应的value1",
    "key2": "对应的value2",
    "numParam": 123, // 数字类型直接传数字,不要转字符串
  });

  try {
    final res = await dio.post(
      "你的接口完整请求地址",
      data: requestData,
    );
    debugPrint("接口响应结果:${res.data}");
  } on DioException catch (e) {
    debugPrint("请求错误信息:${e.message},错误响应:${e.response?.data}");
  }
}

x-www-form-urlencoded格式调用示例

只需要替换请求体和对应配置即可:

final requestData = {
  "key1": "对应的value1",
  "key2": "对应的value2",
};
final res = await dio.post(
  "你的接口完整请求地址",
  data: requestData,
  options: Options(contentType: Headers.formUrlEncodedContentType),
);

内容的提问来源于stack exchange,提问作者Mimu Saha Tishan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:15:38