StringRequest POST数据未从应用发送到PHP脚本

时间:2018-10-30 16:54:58

标签: php android database post

我正在尝试构建一个脚本,该脚本通过将POST数据发送到PHP脚本来从内部SQLite数据库读取数据并将其传输到外部MySQL数据库。

下面的代码应遍历SQLite数据库中的每个记录,将POST数据发送到PHP脚本,如果传输成功,则删除该记录。但是,相反,我从PHP脚本中收到一条错误消息,提示密钥丢失。当我在$ _POST超全局变量上执行var_dump时,我得到一个空数组,提示应用程序的参数未正确发送,我也不知道为什么。

这些代码实际上是从我构建的另一个应用程序中直接复制的,该应用程序执行了相同的操作,但是使用的是不同的数据集,并且数据发送没有问题。

这是我的代码:

        while (data.moveToNext()) {

        final String id = data.getString(0);
        final String name = data.getString(1);
        final String company = data.getString(2);
        final String phone = data.getString(3);
        final String email = data.getString(4);
        final String load = data.getString(5);
        final String autonomy = data.getString(6);
        final String last = data.getString(7);
        final String saving = data.getString(8);
        final String range = data.getString(9);
        final String weight = data.getString(10);
        final String volume = data.getString(11);

        // Load the string request
        StringRequest stringRequest = new StringRequest(Request.Method.POST, serverUrl,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        if (response.equals("success")) {
                            dbHelper.deleteRecord(id);
                        }
                        else Toast.makeText(SendDataActivity.this, response, Toast.LENGTH_SHORT).show();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(SendDataActivity.this, "An unknown error occurred. Some records may not be transferred.", Toast.LENGTH_SHORT).show();
                        error.printStackTrace();
                    }
                }){

            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("key","***");
                params.put("name", name);
                params.put("company", company);
                params.put("phone", phone);
                params.put("email", email);
                params.put("load", load);
                params.put("autonomy", autonomy);
                params.put("last", last);
                params.put("saving", saving);
                params.put("range", range);
                params.put("weight", weight);
                params.put("volume", volume);
                return params;
            }
        };

        RequestHandler.getInstance(SendDataActivity.this).addToRequestQueue(stringRequest);

    }

加载网页没有问题,因为它得到了PHP的响应。所有最终字符串中的数据都是正确的,因为当我在它们上执行System.out.println时,我在控制台中看到了数据。因此,它已将数据正确加载到变量中,但是由于PHP脚本未接收到POST数据,因此该数据在某处丢失。我的其他应用程序完美运行,这使我更加沮丧,这只是同一应用程序的重复版本和重构版本。

0 个答案:

没有答案