You can use the following working sample code. I have tested. Hope this helps!
try { jsonBody = new JSONObject(); jsonBody.put("Title", "VolleyApp Android Demo"); jsonBody.put("Author", "BNK"); jsonBody.put("Date", "2015/08/26"); requestBody = jsonBody.toString(); StringRequest stringRequest = new StringRequest(1, url, new Response.Listener<String>() { @Override public void onResponse(String response) { textView.setText(response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { textView.setText(error.toString()); } }) { @Override public String getBodyContentType() { return String.format("application/json; charset=utf-8"); } @Override public byte[] getBody() throws AuthFailureError { try { return requestBody == null ? null : requestBody.getBytes("utf-8"); } catch (UnsupportedEncodingException uee) { VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", requestBody, "utf-8"); return null; } } }; MySingleton.getInstance(this).addToRequestQueue(stringRequest); } catch (JSONException e) { e.printStackTrace(); }
UPDATE: To create a JSONObject as your requirement, use the following:
JSONObject jsonObject = new JSONObject(); try { jsonObject.put("11", 3); jsonObject.put("12", 4); jsonObject.put("13", 5); JSONObject jsonObject2 = new JSONObject().put("answers", jsonObject); jsonObject2.put("user_id", 12); } catch (JSONException e) { e.printStackTrace(); }
BNK Aug 26 '15 at 1:50 2015-08-26 01:50
source share