#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));
}