Список объектов для отправки HTTP-запроса Flutter

Я успешно получил код ответа 200 от сервера, но мой API возвращает код ответа 0. Когда я пытаюсь отправить запрос в почтальоне, он отвечает на 1. Возможно, мне что-то не хватает в моем JSON для отправки в теле. Я новичок в флаттере, и я хотел бы отправить HTTP-запрос post с телом списка объектов, как показано ниже: я очень признателен за любую помощь.


    [
        {
            "product_id": 14,
            "quantity": 3,
            "payment": "COD"
        },
        {
            "product_id": 3,
            "quantity": 2,
            "payment": "COD"
        }
    ]

Это моя функция для HTTP-сообщения:

Future<dynamic> checkItem({Map headers, body, encoding}) async {
    Map<String, String> headers = {
      'Accept': 'application/json',
      'Content-Type': 'application/json',
      'Authorization': 'Bearer $token'
    };
    try {
      final response = await http.post(
          '${_url}transactions/check',
          headers: headers,
          body: body,
          encoding: Encoding.getByName("utf-8"));
      if (response.statusCode == 200) {
        String data = response.body;
        return jsonDecode(data);
      } else {
        print(response.statusCode);
      }
    } catch (error) {
      print(error);
    }
  }

Вот как я вызываю функцию, которой передаю свой JSON:

 List<String> chckList = checkoutList.map((e) => json.encode(e.toJson())).toList();
 String strBody = json.encode(chckList);
 final res = await interface.checkOutItem(body: strBody);

Это мой toJson в моем объекте модели:


 Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['product_id'] = this.product_id;
    data['quantity'] = this.quantity;
    data['payment'] = this.payment;
    return data;
  }

1 ответ

Запрос в вашем коде кажется всем на месте. Проблема, скорее всего, заключается в используемом вами API, который не может обработать отправляемую вами полезную нагрузку.

Другие вопросы по тегам