使用 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) 方法在請求失敗時被呼叫。