You need to enable JavaScript to run this app. 如何在Dart中发送带表单参数的GET请求 将现有POST代码改为GET实现
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dart中发送带表单参数的GET请求 将现有POST代码改为GET实现

Dart 携带表单参数的GET请求实现方案

HTTP 标准规范中GET请求不支持通过请求体(body)传递参数,所有参数需要以查询参数的形式拼接在URL中,Dart http 库的http.get()方法遵循这一规范,因此没有提供body入参。

实现方式

你可以在通过Uri.parse()解析基础URL后,调用replace方法传入queryParameters自动完成参数拼接与编码,适配你只能使用Uri.parse解析目标URL的要求,无需手动处理字符串拼接。

修改后完整代码

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert' as convert;

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  getTest() async {
    final baseUri = 'http://10.0.2.2:5000/qna/';
    // 解析基础URL后自动拼接查询参数,自动处理特殊字符编码
    final requestUri = Uri.parse(baseUri).replace(
      queryParameters: {
        'pregunta': 'contacto',
      },
    );

    http.Response response = await http.get(requestUri);
    print(response.body);
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Flutter WebView '),
        ),
        body: Container(
          child: TextButton(onPressed: getTest, child: Text('Push me')),
        ),
      ),
    );
  }
}

注意事项

  • 服务端需要调整参数读取逻辑,从URL查询参数中读取对应字段,不再从请求体解析
  • 多参数直接在queryParameters中追加键值对即可,Uri会自动处理中文、特殊符号的URL编码,避免乱码问题
  • 最终生成的请求URL格式为http://10.0.2.2:5000/qna/?pregunta=contacto,符合GET请求的通用标准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 16:15:09