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