#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. Это не очень удобный способ, потому что вы преобразуете свой список в строку.