我正在使用 volley 将数据发送到 mysql 数据库。在发送数据之前,我在获取数据的地方记录它。但是当我在我的 php 代码中执行 var_dump 时,我得到空值。 这是我的截击代码:-
public void update_info(final String device_imei, final String magazine_id)
{
StringRequest stringRequest = new StringRequest(Request.Method.POST, UPDATE_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response)
{
Log.d("DOWNLOAD RESPONSE", response.toString().trim());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError
{
String date = new SimpleDateFormat("dd-mm-yyyy").format(new Date());
Map<String, String> params = new HashMap<>();
params.put(KEY_DEVICEID, device_imei);
params.put(KEY_MAGAZINEID, magazine_id);
params.put(KEY_PURCHASEDATE,date);
Log.d("SENDING PARAMS",device_imei+magazine_id+date);
return super.getParams();
}
};
RequestQueue requestQ = Volley.newRequestQueue(this);
requestQ.add(stringRequest);
}
我不明白我的 volley 代码是否有问题,为什么它会记录正确的值。 这是我的 PHP 代码:-
require_once "config.php";
$con = mysqli_connect($server_name, $mysql_user, $mysql_pass, $dbname);
if (!$con) {
echo "Connection Error".mysqli_connect_error();
}
$device_id = $_POST['device_id'];
$magazine_id = $_POST['magazine_id'];
$download_status = "Yes";
$purchase_status ="Yes";
$purchase_date = $_POST['purchase_date'];
echo var_dump($device_id) . "<br/>";
echo var_dump($magazine_id) . "<br/>";
echo var_dump($download_status) . "<br/>";
echo var_dump($purchase_status) . "<br/>";
echo var_dump($purchase_date) . "<br/>";
我得到的日志如下:- 发送参数:359221060741339Shatayushi201504-05-2016 这是我得到的回应:-
DOWNLOAD RESPONSE: NULL
NULL
string(3) "Yes"
string(3) "Yes"
NULL
如有任何帮助或建议,我们将不胜感激。谢谢。
最佳答案
您需要先调试您的 php 代码。使用 postman 或 html 表单。那么只有你应该尝试在 android 上进行测试。您的 PHP 代码不返回 json。它返回 php var 转储。要返回 json,您必须使用关联数组调用 json_encode。
关于php - Volley 代码在android中发送空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38770473/