Android Volley Timeout Исключение при регистрации информации

Когда я проектирую страницу регистрации Android, я получаю ошибку тайм-аута залпа:

1. Что я имею:

  • WampServer работает на localhost с дабабазой
  • register.php которые соединяют базу данных и отправляют данные в базу данных:

    <?php
    require "init.php";
    
    $name = $_POST["name"];
    $user_name = $_POST["user_name"];
    $user_password = $_POST["user_password"];
    
    $sql = "select * from login_info where user_name = '$user_name'";
    
    $result = mysqli_query($con,$sql);
    $response = array();
    
    if(mysqli_num_rows($result)>0)
    {
    $code = "reg_failed";
    $message = "user exists";
    array_push($response, array("code"=>$code, "message"=>$message));
    echo json_encode($response);
    }
    else
    {
    $sql = "insert into login_info(name, user_name, user_password) 
    values('$name','$user_name','$user_password');";
    $result = mysqli_query($con,$sql);
    $code = "Successful";
    $message = "Thank you...";
    array_push($response, array("code"=>$code, "message"=>$message));
    echo json_encode($response);
    }
    
    mysqli_close($con);
    ?>
    
  • Я создаю тестовое приложение, которое содержит RegisterActivity:

    public class Register extends AppCompatActivity {
    
    EditText uname, uusername, upass,uage, uconpass;
    String name, username, password, conpass;
    int age;
    Button registerbt;
    AlertDialog.Builder builder;
    private static final String REGISTER_REQUEST_URL = 
    "http://<my local ipv4 checked from command>/employee_data/register.php";
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);
    
    uname = (EditText)findViewById(R.id.etname);
    uusername = (EditText)findViewById(R.id.etUserName);
    upass = (EditText)findViewById(R.id.etPass);
    uconpass = (EditText)findViewById(R.id.conPass);
    uage = (EditText)findViewById(R.id.etAge);
    registerbt = (Button)findViewById(R.id.register);
    builder = new AlertDialog.Builder(Register.this);
    
    registerbt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
    
            name = uname.getText().toString();
            username = uusername.getText().toString();
            password = upass.getText().toString();
            conpass = uconpass.getText().toString();
            age = Integer.parseInt(uage.getText().toString());
    
            if (name.equals("") || username.equals("") || password.equals("") || uage.equals("")){
                builder.setTitle("Wrong");
                builder.setMessage("Pls fill all information");
                displayAlert("input_error");
            } else {
                if (! (password.equals(conpass))){
                    builder.setTitle("Wrong");
                    builder.setMessage("Password not matching");
                    displayAlert("input_error");
                } else{
    
                    StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_REQUEST_URL, new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            Log.d("Fuck", "Login Response: " + response.toString());
                            try {
                                JSONArray jsonArray = new JSONArray(response);
                                JSONObject jsonObject = jsonArray.getJSONObject(0);
                                String status = jsonObject.getString("status");
                                String message = jsonObject.getString("message");
                                builder.setTitle("Server response...");
                                builder.setMessage(message);
                                displayAlert(status);
    
    
                            } catch (JSONException e) {
                                Toast.makeText(Register.this, "Json error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
                                e.printStackTrace();
                            }
    
                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            Toast.makeText(getApplicationContext(), "Wrong...", Toast.LENGTH_SHORT).show();
                            error.printStackTrace();
    
                        }
                    }){
                        @Override
                        protected Map<String, String> getParams() throws AuthFailureError {
                            Map<String, String> parames = new HashMap<>();
                            parames.put("name", name);
                            parames.put("username", username);
                            parames.put("password", password);
                            return parames;
                        }
                    };
                    stringRequest.setRetryPolicy(new DefaultRetryPolicy(10000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
                    Mysingleton.getInstance(Register.this).addToRequestque(stringRequest);
                }
            }
    
        }
    });
    
    }
    
    public void displayAlert(final String fk){
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            if (fk.equals("input_error")){
                upass.setText("");
                uconpass.setText("");
    
            }
            else if (fk.equals("ok")){
                finish();
            }
            else if (fk.equals("failed")){
                uname.setText("");
                uusername.setText("");
                uage.setText("");
                upass.setText("");
                uconpass.setText("");
    
            }
    
        }
    });
    
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
    

    }}

Что за ошибка я получаю

  • Нет предупреждения сети

    D/NetworkSecurityConfig: No Network Security Config specified, using 
    platform default
    
  • Ошибка таймаута залпа:

    W/System.err: com.android.volley.TimeoutError at ...  
    

И, наконец, я не могу отправить данные в базу данных, меня там остановили, я действительно не знаю, как с этим справиться, Кто-то сказал мне, что это url проблема, я использовал свой компьютер URL адрес, как php файл помещается в C:\wamp64\www\employee_data так что я думаю, что это не будет проблемой, но я все еще не могу найти другие решения

0 ответов

Другие вопросы по тегам