使用 JSONArray 作为请求主体

在排球中集成的默认请求不允许在 POST 请求中将 JSONArray 作为请求主体传递。相反,你只能将 JSON 对象作为参数传递。

但是,不是将 JSON 对象作为参数传递给请求构造函数,而是需要覆盖 Request.classgetBody() 方法。你还应该将 null 作为第三个参数传递:

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;
        }
    }
};

参数说明:

  • REQUEST_URL - 发送你的请求的完整 URL。
  • RESP_LISTENER - 一个 Response.Listener<?> 对象,成功完成后调用 onResponse(T data) 方法。
  • ERR_LISTENER - 一个 Response.ErrorListener 对象,其 onErrorResponse(VolleyError e) 方法在请求失败时被调用。