Inviare JSON in Android con Volley e StringRequest

Mattepuffo's logo
Inviare JSON in Android con Volley e StringRequest

Inviare JSON in Android con Volley e StringRequest

Volley è una delle librerie per Android più utilizzare per la gestione delle richieste HTTP.

Oggi vediamo come usarla per inviare dei dati in formato JSON, e leggere la stringa di risposta.

Quindi useremo l'oggetto StringRequest.

Do per scontato l'installazione nel vostro progetto, e passo subito al codice Java:

public class LoginActivity extends AppCompatActivity {

    private EditText username;
    private EditText password;
    private String usernameTxt = "";
    private String passwordTxt = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        username = findViewById(R.id.editTextNomeUtente);
        password = findViewById(R.id.editTextPassword);
    }

    private void remoteLogin(View view) {
		usernameTxt = username.getText().toString().trim();
        passwordTxt = password.getText().toString().trim();
        
		try {
            RequestQueue queue = Volley.newRequestQueue(this);

            final JSONObject jsonBody = new JSONObject();
            jsonBody.put("userName", usernameTxt);
            jsonBody.put("hashedPassword", passwordTxt);

            StringRequest stringRequest = new StringRequest(Request.Method.POST, 
												"https://www.sito.com/auth/", 
												new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
					  Log.d("RESP", response);
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.d("ERR", error);
                }
            }) {
                @Override
                public byte[] getBody() throws AuthFailureError {
                    return jsonBody.toString().getBytes();
                }

                @Override
                public String getBodyContentType() {
                    return "application/json";
                }
            };
            queue.add(stringRequest);
        } catch (JSONException e) {
            Log.d("ERR", e.getMessage());
        }
    }
}

Nel layout ci sono due EditText ed un Button che è legato al metodo per il login.

Enjoy!


Condividi

Commentami!