Send POST request of Json Array as data to server

2019-04-17 07:12发布

I want to send a post request using volley. I have data in this format.

  [{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"10:29:17","id":1},{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"15:59:41","id":2},{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"16:05:53","id":3},{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"16:06:16","id":4},{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"16:06:51","id":5},{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"16:08:36","id":6},{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"16:13:33","id":7},{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"16:22:32","id":8},{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"17:00:46","id":9},{"date":"24 Jul 2015","doctorEmail":"mohd.aquib09@gmail.com","doctorName":"aquib","time":"17:04:04","id":10}]

And I am getting response in this format

{"Message" : "Success"}

I have written this code to send request.

   public void saveDataToServer(String data){

        final String BASE_URL = "http://spirantcommunication.com/andriod/grl/doctor_visit_track1.php";
        final String DOCTOR_JSON_PARAM = "doctorJson";

        HashMap<String, String> params = new HashMap<>();
        params.put(DOCTOR_JSON_PARAM, data);

        JsonObjectRequest request = new JsonObjectRequest(BASE_URL, new JSONObject(params),

                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try{
                            VolleyLog.v("Response:%n %s", response.toString(4));
                        }catch (JSONException e){
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });

        MySingleton.getInstance(this).addToRequestQueue(request);
    }

But I am not able to send it.Please somebody help me.

1条回答
劫难
2楼-- · 2019-04-17 07:38

In order to send some post parameters using volley you have to override getParams() method which should return list of parameters to be send in a key value format.

Kindly follow below code segment for sending proper post parameters to server.

// Tag used to cancel the request
String tag_json_obj = "json_obj_req";

                  JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
                url, null,
                new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {
                        Log.d(TAG, response.toString());
                                                }
                }, new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        VolleyLog.d(TAG, "Error: " + error.getMessage());
                                               }
                }) {

            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                params.put(DOCTOR_JSON_PARAM, data);                 

                return params;
            }

        };

// Adding request to request queue
 MySingleton.getInstance(this).addToRequestQueue(jsonObjReq, tag_json_obj);
查看更多
登录 后发表回答