我正在尝试从我的flutter应用程序连接数据库,我想发布我在文本字段写到数据库的值。 我写了一些代码,但我不能张贴到数据库,这是给我的错误。 我想我必须编辑我的php代码但我不知道我如何可以编辑,请帮助我。。。 下面的代码和错误
Future<List> sendData() async {
await http.post(
"https://www.ekspar.com/trying/go.php",
headers: {
'Content-Type': 'application/json; charset=UTF-8',
},
body: {
"adi": nameController.text,
"soyadi": surnameController.text,
},
);
json.decode(response.body);
}
@override
void initState() {
sendData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Theme.of(context).backgroundColor,
body: Scaffold(
appBar: AppBar(
title: Text("Register"),
),
body: Container(
child: Center(
child: Column(
children: <Widget>[
Text(
"ad",
style: TextStyle(fontSize: 18.0),
),
TextField(
controller: nameController,
decoration: InputDecoration(hintText: 'ad'),
),
Text(
"soyad",
style: TextStyle(fontSize: 18.0),
),
TextField(
controller: surnameController,
decoration: InputDecoration(hintText: 'soyad'),
),
RaisedButton(
child: Text("Register"),
onPressed: () {
setState(() {
_build();
});
sendData();
},
),
_build()
],
),
),
),
)
//(_buildBody(),
);
}
和PHP:
<?
include("begin.php");
include("functions-develop.php");
$adi = $_POST['adi'];
$soyadi =$_POST['soyadi'];
if ($adi and $soyadi) {
$query = $func->query("insert into `dart` (`adi`, `soyadi`) VALUES ('$adi','$soyadi')");
echo "Kayit Eklenmiştir";
}
else
{
echo "Bos veri";
}
?>
和错误:
[VERBOSE-2:ui_dart_state.cc(166)] Unhandled Exception: FormatException: Unexpected character (at character 1)
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
^
#0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1404:5)
#1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1271:9)
#2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:936:22)
#3 _parseJson (dart:convert-patch/convert_patch.dart:40:10)
#4 JsonDecoder.convert (dart:convert/json.dart:505:36)
#5 JsonCodec.decode (dart:convert/json.dart:156:41)
#6 jsonDecode (dart:convert/json.dart:96:10)
#7 _LoginScreenState.sendData
package:ekspar/screens/login.dart:357
<asynchronous suspension>
#8 _LoginScreenState.initState
package:ekspar/screens/login.dart:373
#9 StatefulElement._firstBuild
package:flutter/…/widgets/framework.dart:4684
#10 ComponentElement.mount
package:flutter/…/widgets/framework.dart:4520
#11 Element.infl<…>
我做错了但是我不知道。。。
看一看你的API,让我觉得你在尝试发布数据。 同时,我可以看到你正在使用你的flutter应用程序中的一个get请求。
如果你试图发布数据,那么从flutter应用程序发出post请求,而不是GET请求。
下面是使用HTTP包在flutter中进行POST请求的示例。
POST请求示例:
String url = "https://www.ekspar.com.tr/onarim/post.php";
var response = await http.post(url, body: {
"adi":"YOUR_DATA",
"soyadi":"YOUR_DATA"
});
var body = jsonDecode(response.body);
if(response.statusCode == 200){
debugPrint("Data posted successfully");
}else{
debugPrint("Something went wrong! Status Code is: ${response.statusCode}");
}