Dart: несколько одиннаковых параметров в http запросе
Столкнулся с такой ситуацией, мне во флаттере необходимо сделать get запрос с множеством параметров. Один из таких параметров может/должен быть включён несколько раз. Но так как мы его наполняем через мап, у нас конфликтуют ключи. Чёт адекватные решения не приходят в голову. Может у кого есть идеи?
var res = await _client.get("/single", queryParameters: {
"param1": "p",
"param2": "p2",
"dt": "t",
"dt": "rm",
"dt": "rt",
});
P.S. для http запросов использую Dio.
Ответы (1 шт):
Автор решения: MiT
→ Ссылка
Вот такое решение должно работать с get запросом:
void main() {
getSingle("p", "p2", <String>["t", "rm", "rt"]); // "/single?param1=p¶m2=p2&dt=t&dt=rm&dt=rt"
}
void getSingle(String param1, String param2, List<String> dt) {
final StringBuffer buffer = StringBuffer();
buffer.write("/single");
buffer.write("?param1=$param1"); // ? используем так как он первый
buffer.write("¶m2=$param2"); // & используем для соединения
for (String item in dt) {
buffer.write("&dt=$item");
}
print(buffer.toString()); // var res = await _client.get(buffer.toString());
}
Ну или вообще сделать так: _client.get("/single?param1=p¶m2=p2&dt=t&dt=rm&dt=rt");