http dart:如何在请求的查询参数中发送地图?
http dart: How to send a Map in the query parameters of a request?
我有一个像这样的 http 请求,使用 http
包:
import 'package:http/http.dart' as http;
Uri url = Uri.http(
'http://sample.com',
'/request',
{
'dataMap': {
'key1': ['item1', 'item2']
'key2': ['item1', 'item2']
},
},
);
我收到这个错误:
_TypeError (type '_InternalLinkedHashMap<String, List<String>>' is not a subtype of type 'Iterable<dynamic>')
如果我不在查询参数中放入地图,则不会抛出错误。
那么我该如何发送 Map
?
您可以jsonEncode
地图:
import 'dart:convert';
void main() {
Uri url = Uri.http(
'sample.com',
'/request',
{
'dataMap': jsonEncode({
'key1': ['item1', 'item2'],
'key2': ['item1', 'item2']
}),
},
);
print(url);
}
你可以这样实现:
_request() async {
var outer = {};
outer['dataMap'] = {
'key1': ['item1', 'item2'],
'key2': ['item1', 'item2']
};
print(jsonEncode(outer));
return http.post(Uri.parse('https://www.example.com/request'), body: jsonEncode(outer));
}
我有一个像这样的 http 请求,使用 http
包:
import 'package:http/http.dart' as http;
Uri url = Uri.http(
'http://sample.com',
'/request',
{
'dataMap': {
'key1': ['item1', 'item2']
'key2': ['item1', 'item2']
},
},
);
我收到这个错误:
_TypeError (type '_InternalLinkedHashMap<String, List<String>>' is not a subtype of type 'Iterable<dynamic>')
如果我不在查询参数中放入地图,则不会抛出错误。
那么我该如何发送 Map
?
您可以jsonEncode
地图:
import 'dart:convert';
void main() {
Uri url = Uri.http(
'sample.com',
'/request',
{
'dataMap': jsonEncode({
'key1': ['item1', 'item2'],
'key2': ['item1', 'item2']
}),
},
);
print(url);
}
你可以这样实现:
_request() async {
var outer = {};
outer['dataMap'] = {
'key1': ['item1', 'item2'],
'key2': ['item1', 'item2']
};
print(jsonEncode(outer));
return http.post(Uri.parse('https://www.example.com/request'), body: jsonEncode(outer));
}