在 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
,它接受名为 queryParameters
的 Map<String, dynamic>
对象。
dio.request(path,
options: Options(method: 'GET', headers: headers),
queryParameters: {'district_id': districtId},
)
有什么方法可以方便地将 parameters/queries 作为 Map
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
,它接受名为 queryParameters
的 Map<String, dynamic>
对象。
dio.request(path,
options: Options(method: 'GET', headers: headers),
queryParameters: {'district_id': districtId},
)