Есть ли проблема с подключением залпа к серверу? - PullRequest
0 голосов
/ 26 марта 2019

Я хочу отправить два параметра (адрес электронной почты и пароль) на сервер nodeJS с библиотекой залпа и получить объект Json в ответ, который дает мне токен, но у меня возникает эта ошибка при запуске кода:

1. com.android.volley.TimeOutError

2. com.android.volley.AuthFailuerError

Пожалуйста, помогите мне, как я могу решить это.

Вот мой код Java:

public class Login extends Fragment {

Context mcontext;
EditText Login_Email_EditText, Login_Password_EditText;
TextView Login_ForgetPassword_TextView;
Button Login_Button;
SignInButton google_login_Button;


public Login() {
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}


@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.login_fragment_layout, container, false);

    init(view);

    Login_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            UserLogin();
        }
    });

    return view;
}

private void UserLogin() {
    final String Email = Login_Email_EditText.getText().toString();
    final String Password = Login_Password_EditText.getText().toString();

    //validating inputs
    if (TextUtils.isEmpty(Email)) {
        Login_Email_EditText.setError("Please enter your Email");
        Login_Email_EditText.requestFocus();
        return;
    }

    if (TextUtils.isEmpty(Password)) {
        Login_Password_EditText.setError("Please enter your password");
        Login_Password_EditText.requestFocus();
        return;
    }

    JSONObject params = new JSONObject();
    try {
        params.put("email", Email);
        params.put("password", Password);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    //if everything is fine
    JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, URLs.URL_LOGIN, params, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

            try {
                Toast.makeText(mcontext, "You Are Logined!", Toast.LENGTH_LONG);
                //getToken and Status
                String Token = response.getJSONObject("data").getString("token");
                String Status = response.getString("status");

                //if no error in response
                if (response.getString("status").equals("error")) {
                    Toast.makeText(getContext(), "api Error", Toast.LENGTH_LONG).show();
                } else {
                    LoginResponse loginResponse = new LoginResponse(Token, Status);
                    SaveSharedPreference.setLoggedIn(getContext(), true);
                    SaveSharedPreference.setUserStatus(getContext(), loginResponse.getStatus());
                    SaveSharedPreference.setUserToken(getContext(), loginResponse.getToken());

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

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getContext(), error.toString(), Toast.LENGTH_LONG).show();
        }
    });
    RequestQueue requestQueue = Volley.newRequestQueue(mcontext);
    requestQueue.add(jsonRequest);
}

private void init(View view) {
    Login_Password_EditText = view.findViewById(R.id.Login_Password);
    Login_Email_EditText = view.findViewById(R.id.Login_Email);
    Login_Button = view.findViewById(R.id.Login_Button);
    Login_ForgetPassword_TextView = view.findViewById(R.id.Login_ForgetPassword);
    google_login_Button = view.findViewById(R.id.Google_login_button);
    mcontext = getActivity();
}
...