Нет ответа после вызова API - PullRequest
1 голос
/ 25 апреля 2020
  Future<EventObject> addStudentToSubject(String studentCode, String subjectid) async {
try {
  final encoding = APIConstants.OCTET_STREAM_ENCODING;
  final response = await http.post('${APIConstants.API_BASE_LIVE_URL}/controller_educator/add_student_to_subject.php',
      headers: {
        'Accept': 'application/json',
      },
      body: {
        'stud_code': studentCode,
        'subj_id': subjectid
      },
      encoding: Encoding.getByName(encoding)
  );
  print("YAWA" + response.body);
} catch (Exception) {
  return EventObject();
}

}

Что-то не так с моим кодом, почему я не отвечаю? Logcat просто говорит «I / flutter (5013): YAWA» Не знаю, чего мне не хватает.

1 Ответ

0 голосов
/ 27 апреля 2020

Я не верю, что ваш API не работает в Почтальоне. Можете ли вы указать, какой код статуса вы получили в Почтальоне?

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

Вы всегда должны проверять код состояния API. Если он возвращает 200, значит ваш API успешно обработал ваш запрос.

final encoding = APIConstants.OCTET_STREAM_ENCODING;
final response = await http.post('${APIConstants.API_BASE_LIVE_URL}/controller_educator/add_student_to_subject.php',
      headers: {
        'Accept': 'application/json',
      },
      body: {
        'stud_code': studentCode,
        'subj_id': subjectid
      },
      encoding: Encoding.getByName(encoding)
  );
print(${response.statusCode});
   if (response.statusCode == 200) {
      String data = response.body;
      print(data);
    } else {
      print(response.statusCode);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...