public void login() { Log.d(TAG, "Login"); // ensures that fields are correct by calling validate method // Toast.makeText(getApplicationContext(), "Will make login POST request soon!", // Toast.LENGTH_SHORT).show(); Toast.makeText( getApplicationContext(), "User Login Status: " + session.isLoggedIn(), Toast.LENGTH_LONG) .show(); final ProgressDialog progressDialog = new ProgressDialog(LoginActivity.this, R.style.AppTheme); progressDialog.setIndeterminate(true); progressDialog.setMessage("Authenticating..."); progressDialog.show(); if (!validate()) { onLoginFailed(progressDialog); return; } _loginButton.setEnabled(false); // get fields and TODO: insert into HTTP POST request below final String email = _emailText.getText().toString(); final String password = _passwordText.getText().toString(); // TODO: Implement your own authentication logic here. (make HTTP POST request to // <server>/oauth/token) // JSON {"username":"******", "password":"******" or "Bob12345"} StringRequest jsonObjectRequest = new StringRequest( Request.Method.POST, LOGIN_URL, new Response.Listener<String>() { @Override public void onResponse(String response) { Log.d(TAG, "Valid Response: " + response.toString()); try { // Parsing json object response JSONObject j = new JSONObject(response); jsonResponse = ""; String token = j.getString("access_token"); jsonResponse += "Access token: " + token + "\n\n"; Log.d(TAG, jsonResponse); session.createLoginSession(email, token); onLoginSuccess(); } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d(TAG, "Error Response: " + error.toString()); onLoginFailed(progressDialog); if (error instanceof TimeoutError || error instanceof NoConnectionError) { Log.d(TAG, "Timeout/no connection error: " + error.toString()); Toast.makeText( getBaseContext(), "Please make sure you have internet connection", Toast.LENGTH_LONG); } else if (error instanceof AuthFailureError) { Log.d(TAG, "AuthFailure error: " + error.toString()); } else if (error instanceof ServerError) { Log.d(TAG, "Server error: " + error.toString()); } else if (error instanceof NetworkError) { Log.d(TAG, "Network error: " + error.toString()); } else if (error instanceof ParseError) { Log.d(TAG, "Parse error: " + error.toString()); } } }) { @Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String>(); params.put(KEY_PASSWORD, password); params.put(KEY_EMAIL, email); params.put(KEY_GRANT_TYPE, "password"); Log.d("Params", "params: " + params.toString()); return params; } @Override public Map<String, String> getHeaders() throws AuthFailureError { HashMap<String, String> headers = new HashMap<String, String>(); headers.put("Accept", "application/json"); return headers; } @Override public String getBodyContentType() { return "application/x-www-form-urlencoded; charset=utf-8"; } }; RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(jsonObjectRequest); Log.d(TAG, jsonObjectRequest.toString()); }