Reputation: 194
I want to send a post request using volley. I have data in this format.
[{"date":"24 Jul 2015","doctorEmail":"[email protected]","doctorName":"aquib","time":"10:29:17","id":1},{"date":"24 Jul 2015","doctorEmail":"[email protected]","doctorName":"aquib","time":"15:59:41","id":2},{"date":"24 Jul 2015","doctorEmail":"[email protected]","doctorName":"aquib","time":"16:05:53","id":3},{"date":"24 Jul 2015","doctorEmail":"[email protected]","doctorName":"aquib","time":"16:06:16","id":4},{"date":"24 Jul 2015","doctorEmail":"[email protected]","doctorName":"aquib","time":"16:06:51","id":5},{"date":"24 Jul 2015","doctorEmail":"[email protected]","doctorName":"aquib","time":"16:08:36","id":6},{"date":"24 Jul 2015","doctorEmail":"[email protected]","doctorName":"aquib","time":"16:13:33","id":7},{"date":"24 Jul 2015","doctorEmail":"[email protected]","doctorName":"aquib","time":"16:22:32","id":8},{"date":"24 Jul 2015","doctorEmail":"[email protected]","doctorName":"aquib","time":"17:00:46","id":9},{"date":"24 Jul 2015","doctorEmail":"[email protected]","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.
Upvotes: 0
Views: 4798
Reputation: 5591
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);
Upvotes: 1