且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用齐射将Json Array的POST请求作为数据发送到服务器

更新时间:2023-01-01 18:18:55

为了使用截击发送一些后置参数,您必须重写getParams()方法,该方法应以键值格式返回要发送的参数列表. /p>

请按照下面的代码段向服务器发送适当的post参数.

// 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);

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.

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