StringRequest POST-данные не отправляются из приложения в PHP-скрипт - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь создать сценарий, который считывает данные из внутренней базы данных SQLite и передает их во внешнюю базу данных MySQL, отправляя данные POST в сценарий PHP.

Приведенный ниже код должен циклически проходить по каждой записи в базе данных SQLite, отправлять данные POST в сценарий PHP и удалять запись, если передача прошла успешно. Однако вместо этого я получаю сообщение об ошибке из своего PHP-скрипта, в котором говорится, что ключ отсутствует. Когда я сделал var_dump для суперглобального $ _POST, я получил пустой массив, предполагая, что параметры из приложения отправляются неправильно, и я понятия не имею, почему.

Этот код был буквально скопирован непосредственно из другого приложения, которое я создал, который сделал то же самое, но для другого набора данных, и эти данные отправляются без проблем.

Вот мой код:

        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. И это еще более расстраивает тот факт, что мое другое приложение работает отлично, и это просто дублированная и реорганизованная версия того же приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...