我正在使用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);
}
我不知道我的凌空代码中是否存在问题,为什么它会记录正确的值。 这是我的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 这是我得到的回应: -
下载响应:NULL
NULL
字符串(3)“是”
字符串(3)“是”
NULL
感谢任何帮助或建议。谢谢。
答案 0 :(得分:0)
您需要先调试您的PHP代码。使用邮递员或html表格。那么只有你应该尝试在Android上测试。您的PHP代码不会返回json。它返回php var dumps。要返回json,你必须使用关联数组调用json_encode。
答案 1 :(得分:0)
而不是返回super.getParams();返回你自己的参数。