Почему нет данных POST, когда я запускаю свой php-код из Android Studio?

Я использую метод POST для ввода данных в мой php-документ, а затем в базу данных mysql, но когда я запускаю свой php-код, он говорит, что нет данных POST, и показывает исключение несоответствия типов JSONObject в моем журнале android studio. Исключение возникает при создании JSONObject. Что странного в этом то, что я использовал один и тот же код с разными переменными в других частях моего проекта без проблем. Ни один столбец не вставлен в мою таблицу MySQL. Спасибо за помощь.

Вот мой код Java

private void updateCoords(){
String latitude = Double.toString(currentLocation.getLatitude());
String longitude = Double.toString(currentLocation.getLongitude());
String tableName = "queue_" + Integer.toString(rider.getFrat_code());
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i(TAG, "updateCoords Response Listener: " + response);
try {
//Log.i(TAG, "["+result+"]");
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success"); //found in CoordsPush.php file

if (success){
Log.i(TAG, "updateCoords: " + response);
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(MapsActivity.this);
builder.setMessage("Upload coordinates failed")
.setNegativeButton("Retry", null)
.create().show();
Log.d(TAG, "Failed to upload coordinates");
}

} catch (JSONException e) {
e.printStackTrace();
}
}
};

Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "Errorlistener: " + error.toString());
}
};

PushCoordsRequest pushCoordsRequest = new PushCoordsRequest(Integer.toString(rider.getID()),
latitude, longitude, tableName, responseListener, errorListener);
RequestQueue requestQueue = Volley.newRequestQueue(MapsActivity.this);
requestQueue.add(pushCoordsRequest);
}

А вот класс pushcoordsrequest:

import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;

import java.util.HashMap;
import java.util.Map;

public class PushCoordsRequest extends StringRequest{

private static final String coordinatePushURL = "myurl";
private Map<String, String> params;

private final String TAG = "PushCoords Request: ";

public PushCoordsRequest (String id, String latitude, String longitude, String tableName,
Response.Listener<String> listener,
Response.ErrorListener errorListener){
super(Method.POST, coordinatePushURL, listener, errorListener);
params = new HashMap<String, String>();
params.put("ID", id);
params.put("Latitude", latitude);
params.put("Longitude", longitude);
params.put("TableName", tableName);
}

@Override
public Map<String, String> getParams() {
return params;
}
}

Вот мой php:

<?php
$con = mysqli_connect("localhost", "username", "password", "id6042396_users");

if (empty($_POST))
{
echo "no post data";
}
$id = $_POST["ID"];
$lat = $_POST["Latitude"];
$long = $_POST["Longitude"];
$table = $_POST["TableName"];
$statement = mysqli_prepare($con, "INSERT INTO ? (ID, Latitude, Longitude) VALUES (?, ?, ?)");
echo $statement;
mysqli_stmt_bind_param($statement, "sidd", $table, $id, $lat, $long);
mysqli_stmt_execute($statement);

$response = array();
$response["success"] = true;

echo json_encode($response);
?>

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]