Cómo realizar una solicitud estándar

En esta lección, se describe cómo usar los tipos de solicitudes comunes que admite Volley:

  • StringRequest. Especifica una URL y recibe una string sin procesar como respuesta. Consulta Cómo configurar una cola de solicitudes para obtener un ejemplo.
  • JsonObjectRequest y JsonArrayRequest (ambas son subclases de JsonRequest). Especifica una URL y obtén un objeto o un arreglo JSON (respectivamente) como respuesta.

Si tu respuesta esperada es uno de estos tipos, es probable que no tengas que implementar una solicitud personalizada. En esta lección, se describe cómo usar estos tipos de solicitudes estándar. Para obtener información sobre cómo implementar tu propia solicitud personalizada, consulta Cómo implementar una solicitud personalizada.

Cómo solicitar JSON

Volley proporciona las siguientes clases para las solicitudes de JSON:

  • JsonArrayRequest: Una solicitud para recuperar el cuerpo de una respuesta JSONArray en una URL específica.
  • JsonObjectRequest: Una solicitud para recuperar el cuerpo de una respuesta JSONObject en una URL específica, que permite que se pase un JSONObject opcional como parte del cuerpo de la respuesta.

Ambas clases se basan en la clase base JsonRequest común. Si quieres usarlas, sigue el mismo patrón básico que usas en otros tipos de solicitudes. Por ejemplo, este fragmento busca un feed de JSON y lo muestra como texto en la IU.

Kotlin

    val url = "http://my-json-feed"

    val jsonObjectRequest = JsonObjectRequest(Request.Method.GET, url, null,
            Response.Listener { response ->
                textView.text = "Response: %s".format(response.toString())
            },
            Response.ErrorListener { error ->
                // TODO: Handle error
            }
    )

    // Access the RequestQueue through your singleton class.
    MySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest)
    

Java

    String url = "http://my-json-feed";

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
            (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject response) {
            textView.setText("Response: " + response.toString());
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            // TODO: Handle error

        }
    });

    // Access the RequestQueue through your singleton class.
    MySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest);
    
Para obtener un ejemplo de cómo implementar una solicitud de JSON personalizada basada en Gson, consulta la siguiente sección: Cómo implementar una solicitud personalizada.