如何在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
相关产品推荐
相关产品推荐

