在 flutter http.get GET 请求中将参数作为 Map 传递

pass parameters as Map in flutter http.get GET request

有什么方法可以方便地将 parameters/queries 作为 Map 本身与 headers 一起传递到 flutter 中的 get 请求中。截至目前,我正在使用 http 包并且只能使用 url 字符串操作来完成,如下所示:

var headers={
    'accept': 'application/json',
    'Accept-Language': 'en_US',
    'user-agent': 'Mozilla/5....'
    };
final response = await http.get(Uri.parse(url+'?district_id=$district_id'+'&date=$date'), headers:headers);

http.get 只接受 url 和 headers,不像 python get 中有效载荷字典可以用作参数。 我想简单地实现它,例如:

final response = await http.get(Uri.parse(url), params:params, headers:headers);

或任何其他无需字符串操作的方法。

更新: 我尝试使用 Uri 构造函数。但它会抛出错误。我需要传递的地图是

{'district_id':298, 'date':'10-06-2021'}; \has int and String as values.

错误:

type 'int' is not a subtype of type 'Iterable'

到目前为止,我只能通过将 int 298 更改为 String '298'.

来使其工作

您可以使用 dio.request,它接受名为 queryParametersMap<String, dynamic> 对象。

dio.request(path,
    options: Options(method: 'GET', headers: headers),
    queryParameters: {'district_id': districtId},
)