【发布时间】:2019-02-26 08:05:58
【问题描述】:
我是 Kotlin 的新手。我想问一下 POST 请求。
我想将“nim”、“nama”和“address”edittext.text 传递到数据库。但是在我的代码中,仍然出现 Toast“发生错误”并且数据库没有得到任何数据。那我该怎么办?
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val jsonobj = JSONObject()
jsonobj.put("nim", nim_editText.text)
jsonobj.put("nama", nama_editText.text)
jsonobj.put("address", address_editText.text)
val queue = Volley.newRequestQueue(this)
val url = "http://192.168.100.7/simplecrud/create.php"
val req = JsonObjectRequest(Request.Method.POST,url,jsonobj,
Listener {
Toast.makeText(this@MainActivity, "Success", Toast.LENGTH_SHORT).show()
},
ErrorListener {
Toast.makeText(this@MainActivity, "Error Occured", Toast.LENGTH_SHORT).show()
})
val btn = findViewById<Button>(R.id.button1)
btn.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
queue.add(req)
}
})
这是我的 create.php 代码
<?php
require_once('connection.php');
$nim = $_POST['nim'];
$name = $_POST['name'];
$address = $_POST['address'];
$gender = $_POST['gender'];
if(!$nim || !$name || !$address || !$gender ){
echo json_encode(array('message'=>'required field is empty.'));
}
else{
$query = mysqli_query($CON, "INSERT INTO tb_student VALUES ('$nim','$name','$address','$gender')");
if($query){
echo json_encode(array('message'=>'student data successfully added.'));
}
else{
echo json_encode(array('message'=>'student data failed to add.'));
}
}
?>
【问题讨论】:
-
通过
Log.d(TAG, "Error: " + it.getMessage());在ErrorListener 中发布您的“VolleyError”对象。并且,nim_editText.text 将返回 EditText 的当前状态。如果要发送输入的数据,则应在用户单击按钮时生成 JSONObject。 -
谢谢,我试试。但是在代码的底部,有一个OnClickListener来执行请求
-
我的意思是这样 -> Gist
-
我复制了您的代码,但仍然是“发生错误”
-
你能调试一下吗?它必须包含一些关于错误的信息。
标签: android api post kotlin request