Отправить массив в http flutter

#flutter #http #dart

#flutter #http #dart

Вопрос:

Вот как я отправляю два значения на сервер с помощью postman.

введите описание изображения здесь

Как я должен писать в http?

    var url = "xxx";
    var response = await http.post(url, headers: headers, body: {
        ....  
      'all_receivers': adminList.toString(),
      'commence_time': endTime, // this no issue
        ...
    });
  

Я передаю adminList , что есть [725,607] , но получаю ошибку:

Ошибка

 all_receivers id [725 is invalid. all_receivers id  607] is invalid.
  

Комментарии:

1. Что произойдет, если вы напишете response.fields['all_receivers'] = adminList

2. Почему бы не преобразовать ваш список в строку и не проанализировать его при получении?

3. Сервер @MidhunMP вернет all_receivers id [725 is invalid. all_receivers id 783] is invalid.

4. @D.Lucas я хочу отправить сообщение на сервер.

5. ваш вопрос неясен, удалите toString из массива, закодируйте сопоставление в json, предполагая, что тип содержимого — json

Ответ №1:

Вы создаете json и передаете его, или вы можете создать и массив строк

Вы можете просто разрешить это, приведя свой список к String .

Приведя список токенов с помощью метода toString(), вы получите строку, подобную этой "['token1','token2']"

Вот измененный код:

 List<String> adminList=["725","607"]; // how to pass 725,607

var response = await http.post(url, headers: headers, body: {
       'all_receivers': adminList.toString(), // how to pass 725,607
   }
  

Ответ №2:

попробуйте передать с помощью jsonEncode

  var response = await http.post(url, headers: headers, body: JsonEncode({
       'all_receivers': adminList, 
   });
 print(response);
  

Комментарии:

1. Я исправил использование .join .

Ответ №3:

Вот как я исправил

 final receivers = adminList.join(",");
final body = {'all_receivers':receivers}
http.post(url', body: body);
  

Комментарии:

1. Это не очень удобный способ, потому что вы преобразуете свой список в строку.