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&param2=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("&param2=$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&param2=p2&dt=t&dt=rm&dt=rt");

→ Ссылка