Use CustomVolleyRequest as I use below
public class CustomVollyRequest extends Request<JSONObject> { private Listener<JSONObject> listener; private Map<String, String> params; public CustomVollyRequest(String url, Map<String, String> params, Listener<JSONObject> reponseListener, ErrorListener errorListener) { super(Method.GET, url, errorListener); this.listener = reponseListener; this.params = params; } public CustomVollyRequest(int method, String url, Map<String, String> params, Listener<JSONObject> reponseListener, ErrorListener errorListener) { super(method, url, errorListener); this.listener = reponseListener; this.params = params; } @Override protected Map<String, String> getParams() throws com.android.volley.AuthFailureError { return params; } @Override protected void deliverResponse(JSONObject response) { listener.onResponse(response); } @Override protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { try { String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); return Response.success(new JSONObject(jsonString), HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (JSONException je) { return Response.error(new ParseError(je)); } }
Use the above class as below
Map<String, String> params = new HashMap<>(); params.put("key",value);//put your parameters here CustomVollyRequest jsObjRequest = new CustomVollyRequest( Request.Method.POST, url, params, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { //Log.d("Response: ", response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError response) { Log.d("Response: Error", response.toString()); } } );
source share