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

如何在Flutter中实现含URL参数与请求体的HTTP POST请求?

在Flutter中实现指定HTTP POST请求

首先需要在项目中添加http包依赖,在pubspec.yaml中添加:

dependencies:
  http: ^1.1.0

执行flutter pub get完成依赖安装后,即可编写请求代码:

import 'package:http/http.dart' as http;

Future<void> addToCart() async {
  // 构建包含URL参数的请求地址
  final uri = Uri.parse('http://myopencart.example.com/index.php?route=api/cart/add')
      .replace(queryParameters: {
    'api_token': '768ef1810185cd6562478f61d2',
  });

  try {
    final response = await http.post(
      uri,
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
      },
      body: {
        'product_id': '100',
        'quantity': '1', // 注意原代码存在拼写错误:quantuty → quantity
      },
    );

    // 处理请求响应
    if (response.statusCode == 200) {
      print('商品添加成功');
      print(response.body);
    } else {
      print('请求失败,状态码:${response.statusCode}');
    }
  } catch (e) {
    print('请求出错:$e');
  }
}

关键部分说明

  • URL参数处理:通过Uri.replace(queryParameters)添加api_token参数,和原Python代码中params参数的作用完全一致,最终会将参数拼接至URL的查询字符串中。
  • 请求体数据:body传入的Map配合application/x-www-form-urlencoded类型的请求头,对应原Python代码中post方法的data参数,会以表单编码格式发送数据。
  • 拼写修正:原代码中quantuty为拼写错误,已修正为正确的quantity。

直接调用addToCart()函数即可发起目标POST请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:01:10