Posting JsonObject dengan Volley

Saya mencoba mengirim permintaan Posting dengan voli tanpa hasil.

Lib berfungsi dengan benar, dan saya berhasil mengirim beberapa permintaan string, tetapi Posting dengan JsonObject tidak berfungsi.

String urlJsonReq = "https://api.parse.com/1/classes/GameScore";
    String tag_json_obj = "tag_json";

    JsonObjectRequest jsonReq = new JsonObjectRequest(Request.Method.POST,
            urlJsonReq,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    Log.d("MyApp", response.toString());
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d("MyApp", "Error: " + error.getMessage());
                    // hide the progress dialog
                }
    }) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<String, String>();
            params.put("value1", "testValue1");
            params.put("value2", "testValue2");
            return params;
        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("X-Parse-REST-API-Key", "xxxxxxxxxxxx");
            headers.put("X-Parse-Application-Id", "xxxxxxxxxxx");
            return headers;
        }

        @Override
        public String getBodyContentType() {
            return "application/json";
        }
    };

Saya terus mendapatkan kesalahan. Saya membaca di suatu tempat, tetapi tanpa detail apa pun bahwa volley tidak dapat mengirim JsonObjects, terima saja. Bahwa jika Anda ingin menyelesaikan masalah itu, Anda harus menerapkan kelas khusus, tetapi saya benar-benar tidak tahu apakah saya hanya membuat kesalahan bodoh di sini (mungkin saja).

Apakah kalian tahu sesuatu tentang itu?

Terima kasih atas waktu Anda.


person Tin Megali    schedule 14.05.2015    source sumber


Jawaban (1)


Anda dapat mengirim JSONObject tanpa mengesampingkan getParams atau getBodyContentType. Sesuatu seperti ini misalnya

JSONObject object = new JSONObject();
    JsonObjectRequest jr = new JsonObjectRequest(Request.Method.POST, url, object, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });

Tentunya Anda dapat Mengganti header jika perlu.

person Andy Joyce    schedule 14.05.2015
comment
Fantastis! Senang aku dapat membantu :) - person Andy Joyce; 15.05.2015