Невозможно отправить данные на сервер с помощью Volley Android

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

Когда я запускаю его, он выдает следующее сообщение: «предупреждение mysqli prepare () ожидает, что параметр 1 будет mysqli, логическое значение задано в home …»

Пожалуйста помоги.
Вот мой код Android:
Класс пользователя содержит строку имени, имени пользователя, мобильного телефона, пароля.

private void registerUser(final User user) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, SERVER_ADDRESS + "Register.php",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(Register.this,response,Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(Register.this,error.toString(),Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put("name",user.name);
params.put("username", user.username);
params.put("mobile", user.mobile);
params.put("password", user.password);
Log.d(name+username+"her", "her");
return params;
}
};

RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);

}
}

А вот и файл php:

 <?php

if($_SERVER['REQUEST_METHOD']=='POST'){
$con=mysqli_connect("localhost","dbName","pass","userName");

$name = $_POST["name"];
$username = $_POST["username"];
$mobile = $_POST["mobile"];
$password = $_POST["password"];

$statement = mysqli_prepare($con, "INSERT INTO UserDetails (name, username, mobile, password) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "ssss", $name, $username, $mobile, $password);
mysqli_stmt_execute($statement);
echo $name, $username, $mobile, $password;
mysqli_stmt_close($statement);

mysqli_close($con);}
?>

2

Решение

Вам нужно запустить очередь перед добавлением к ней любого запроса.

 RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.start()
requestQueue.add(stringRequest);

Пожалуйста, убедитесь, что вы вызываете start () только один раз. Следовательно, создайте одноэлементный класс VolleyManager, когда вы создаете экземпляр этого класса, он должен создать очередь запросов и запустить ее. Для каждого вызова API просто вызовите VolleyManager.getInstance (). GetQueue (). Add (stringRequest).

0

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

добавлять

глобальный кон

в вашем php файле.

0