Запрос Flutter Http post выдает необработанное исключение: FormatException: недопустимый номер radix-10 (в символе 1)

#flutter #http #exception #post

#трепетание #http #исключение #Публикация

Вопрос:

Я сделал post-запрос на регистрацию пользователя. Я перешел по этой ссылке — https://flutter.dev/docs/cookbook/networking/send-data

Но я получаю следующее исключение — Необработанное исключение: FormatException: недопустимый номер основания-10 (в символе 1)

Вот этот метод-

 Future<User> createUser(
  String fullName, String email, String userName, String password) async {
final response = await http.post(
  Uri.https('http://example.com/signup.php', 'user'),
  headers: <String, String>{
    'Content-Type': 'application/json; charset=UTF-8',
  },
  body: jsonEncode(<String, String>{
    'fullname': fullName,
    'email': email,
    'username': userName,
    'password': password
  }),
);

if (response.statusCode == 201) {
  s = jsonDecode(response.body);
  print(s);
  return User.fromJson(jsonDecode(response.body));
} else {
  throw Exception('Failed to create user.');
}
 

}

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

1. ошибка возникает, когда ваш синтаксис api неверен, например, когда-то это решалось путем изменения http на https

2. что вы собираетесь делать с этой линией ? Uri.https('http://example.com/signup.php', 'user'), Я думаю, что этого достаточно await http.post(http://example.com/signup.php, body: {... });

3. @JohnJoe После реализации вашего предложения исключение исчезло. Теперь ему не удалось создать пользователя.

4. убедитесь, что все параметры содержат значение, а URL-адрес указан правильно.

Ответ №1:

Мне пришлось изменить свой метод, чтобы заставить его работать.

Это код-

 Future<User> createUser(
  String fullName, String email, String userName, String password) async {
final response = await http.post('https://andoirdtvapp.hiphopnblog.com/signup.php',
  
  body: {
    'fullname' : fullName,
    'email' : email,
    'username' : userName,
    'password' : password,
  },
);
  s = response.body;
  return User.fromJson(jsonDecode(response.body));
  }