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
yJsonArrayRequest
(ambas son subclases deJsonRequest
). 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 respuestaJSONArray
en una URL específica.JsonObjectRequest
: Una solicitud para recuperar el cuerpo de una respuestaJSONObject
en una URL específica, que permite que se pase unJSONObject
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);