Android Utiliser JSONArray comme corps de requête


Exemple

Les requêtes par défaut intégrées dans volley ne permettent pas de passer un objet JSONArray tant que corps de requête dans une requête POST . Au lieu de cela, vous pouvez uniquement transmettre un objet JSON tant que paramètre.

Toutefois, au lieu de transmettre un objet JSON tant que paramètre au constructeur de la demande, vous devez remplacer la méthode getBody() de la Request.class . Vous devez également transmettre null comme troisième paramètre:

JSONArray requestBody = new JSONArray();

new JsonObjectRequest(Request.Method.POST, REQUEST_URL, null, RESP_LISTENER, ERR_LISTENER) {
    @Override
    public byte[] getBody() {
        try {
            return requestBody.toString().getBytes(PROTOCOL_CHARSET);
        } catch (UnsupportedEncodingException uee) {
            // error handling
            return null;
        }
    }
};

Explication des paramètres:

  • REQUEST_URL - L'URL complète à laquelle envoyer votre demande.
  • RESP_LISTENER - Un objet Response.Listener<?> , Dont la onResponse(T data) est appelée après son achèvement.
  • ERR_LISTENER - Objet Response.ErrorListener , dont la onErrorResponse(VolleyError e) est appelée lors d'une requête infructueuse.