title: Getting com.android.volley.ServerError
body: <p>PUT request using volley</p>
  
  <pre>
  Log.i("JsonObject is",finaljsonData.toString());
  Output:-
  
  {"stats":[{"med_id":1,"med_name":"Evening","start_date":1476107306168,"end_date":1476193706168,"adherence":{"taken_on":[1476107704867],"missed_on":[]}}]}
  </pre>
  
  <p>Code:</p>
  
  <pre><code>    JsonObjectHeader customRequest=new JsonObjectHeader(Request.Method.PUT,url, finaljsonData, listener, errorListener);
      RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
      requestQueue.add(customRequest);
  </code></pre>
  
  <p>And the JsonObjectHeader class is:-</p>
  
  <pre><code>public class JsonObjectHeader extends JsonRequest&lt;JSONObject&gt; {
  
      public JsonObjectHeader(int method, String url, String requestBody, Response.Listener&lt;JSONObject&gt; listener, Response.ErrorListener errorListener) {
          super(method, url, requestBody, listener, errorListener);
      }
  
      public JsonObjectHeader(String url, JSONObject jsonRequest, Response.Listener&lt;JSONObject&gt; listener,
                              Response.ErrorListener errorListener) {
          this(jsonRequest == null ? Method.GET : Method.POST, url, jsonRequest,
                  listener, errorListener);
      }
  
      public JsonObjectHeader(int method, String url, JSONObject jsonRequest,
                              Response.Listener&lt;JSONObject&gt; listener, Response.ErrorListener errorListener) {
          super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(), listener,
                  errorListener);
      }
  
      @Override
      protected Response&lt;JSONObject&gt; parseNetworkResponse(NetworkResponse response) {
  
          try {
              Log.i("Response parse","Yes");
              String jsonString = new String(response.data,
                      HttpHeaderParser.parseCharset(response.headers));
              Log.i("Json String",jsonString);
              Log.i("Response Complete",response.toString());
              Log.i("Response Data",response.data.toString());
              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));
          }
  
      }
  
      @Override
      public Map&lt;String, String&gt; getHeaders() throws AuthFailureError {
          HashMap&lt;String, String&gt; headers = new HashMap&lt;String, String&gt;();
          headers.put("Content-Type", "application/json; charset=utf-8");
          headers.put("x-access-token", Constants.getTokenDB());
          return headers;
  
      }
  
  }
  </code></pre>
  
  <p>LogCat OutPut:</p>
  
  <pre>
  10-10 19:45:15.186 22355-22426/user.com.test2 E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7f5ba7cac7e0
  10-10 19:45:15.797 22355-22650/user.com.test2 E/Volley: [198] BasicNetwork.performRequest: Unexpected response code 500 for url
  10-10 19:45:15.798 22355-22355/user.com.test2 W/System.err: com.android.volley.ServerError
  10-10 19:45:15.798 22355-22355/user.com.test2 W/System.err:     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:163)
  10-10 19:45:15.798 22355-22355/user.com.test2 W/System.err:     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)
  </pre>
  
  <p>Server LogCat:-</p>
  
  <pre><code>{}
  www-user-9 PUT /medstats 500 4.579 ms - 627
  
   TypeError: Cannot read property 'length' of undefined
  www-user-9     at /abc.js:390:12
  www-user-9     at Layer.handle [as handle_request] (/xyz.js.js:95:5)
  www-user-9     at next (/abc.js:131:13)
  www-user-9     at /abc.js:61:5
  www-user-9     at //abc.js:27:18
  www-user-9     at nextTickCallbackWith0Args (node.js:420:9)
  www-user-9     at process._tickDomainCallback (node.js:390:13)
  </code></pre>
  
  <p>I have tried using PostMan. So it is working fine: so I think no server error</p>