Как опубликовать JSON, используя Volley в Android? - PullRequest
0 голосов
/ 10 июля 2019

Я должен отправить сжатые данные JSON, используя Volley в Android.Но Volley принимает только объект JSON.Что мне нужно сделать, чтобы отправить сжатый GZIP JSON через залп запрос?

JSONObject name = new JSONObject ();try {

        name.put("name","hello");

    }catch(JSONException e){
        e.printStackTrace();
    }
    JSONObject data = new JSONObject();
    try{
        rrsrsData.put("data",name);

    }catch(JSONException e){

    }

   try{
        byte[] compressData = compress(data);
    }catch (Exception e){
        e.printStackTrace();
    }

публичное статическое сжатие байтов [] (объект JSONObject) создает исключение {

   String str = object.toString();
    ByteArrayOutputStream obj=new ByteArrayOutputStream();
    GZIPOutputStream gzip = new GZIPOutputStream(obj);
    gzip.write(str.getBytes("UTF-8"));
    gzip.close();
    String outStr = obj.toString("UTF-8");
    System.out.println("Output String length : " + outStr.length());
    return obj.toByteArray();
}




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

            Log.v("Json Sucess",response.toString());



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

            Log.v("Json Error",error.toString());

        }
    }) {

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap headers= new HashMap();
            headers.put("Content-Type","application/json");
            headers.put("User-Agent","RRSRS/214.204.1");
            headers.put("Content-Encoding", "gzip");


            //return super.getHeaders();
            return headers;
        }
    };
...