mysql - SyntaxError:Flutter 中 JSON 输入的意外结束
问题描述
我试图为我的颤振应用程序建立一个注册后端。为了做到这一点,我有这个类:
class _MyHomePageState extends State<MyHomePage> {
bool verifyButton = false;
TextEditingController user = TextEditingController();
TextEditingController pass = TextEditingController();
String verifylink;
Future signUp() async {
if (user.text.isNotEmpty) {
var response = await http.post(
'https://mydomammmmmmmin.com/signup.php',
body: {"username": user.text, "password": pass.text});
var link = json.decode(response.body);
verifylink = link;
sendMail();
setState(() {
verifyButton = true;
});
//print(verifylink);
showToast(
"Thanks for registering with Flutter localhost. Please click this link to complete this registation",
duration: 4,
gravity: Toast.CENTER);
} else {
showToast("Enter Username and password first",
duration: 3, gravity: Toast.TOP);
}
}
但是,当我按下按钮时,总是会出现这个问题:
Error: FormatException: SyntaxError: Unexpected end of JSON input
at Object.throw_ [as throw] (http://localhost:54346/dart_sdk.js:5340:11)
at Object._parseJson (http://localhost:54346/dart_sdk.js:49770:19)
at JsonDecoder.convert (http://localhost:54346/dart_sdk.js:47520:22)
at JsonCodec.decode (http://localhost:54346/dart_sdk.js:47217:48)
at main._MyHomePageState.new.signUp (http://localhost:54346/packages/ftesty/Welcome.dart.lib.js:1821:35)
at signUp.next (<anonymous>)
注意:我也认为问题出在 php 文件中,所以这是我用于注册的 php 文件:
<?php
$db = mysqli_connect("localhost","db_","","dbuser");
if(!$db){
echo "Database connect error".mysqli_error();
}
$username = $_POST['username'];
$password = $_POST['password'];
$token = md5(rand('10000', '99999'));
$insert = $db->query("INSERT INTO login(username,password,token)VALUES('".$username."','".$password."','".$token."')");
if($insert){
$lastId = mysqli_insert_id($db);
$url = 'http://'.$_SERVER['SERVER_NAME'].'/mydommmain.com/verify.php?id='.$lastId.'&token='.$token;
echo json_encode($url);
}
mm我不确定,有什么想法吗?
解决方案
试试这个你需要添加json.encode
到身体
var response = await http.post(Uri.parse("https://mydomammmmmmmin.com/signup.php"),
headers: {"Content-Type": "application/json"},
body: json.encode({
"username": user.text,
"password": pass.text,
}));
print("response menu " + response.body.toString());
推荐阅读
- powershell - 如何使用 PowerShell 在 GUI 表单中处理标签大小和位置?
- c# - .Net HttpClient - 403:请启用cookies
- .htaccess - .htaccess 301 重定向除主页外的所有页面
- c# - 用于多种访问模式的 dynamoDb 范围键设计
- javascript - 开玩笑 - 断言异步函数抛出测试失败
- java - Swing 组件如何考虑我的默认语言环境?
- php - 如何使用 Symfony 原则指定我需要应用迁移的架构?
- python - 不能通过 Atom 工作的返回语句
- html - 为什么我在使用仅月份选择器时也得到日期 [PrimeNG]
- python - 从数组中删除重复项并将值相加 Python