@@ -120,20 +120,6 @@ private void handleHelper(Request baseRequest, HttpServletRequest request,
120120 } else if (method .equals ("GET" ) && uri .equals ("/user-agent" )) {
121121 JSONObject response = new JSONObject ();
122122 response .put ("user-agent" , request .getHeader ("User-Agent" ));
123- respondJSON (servletResponse , os , response );
124- baseRequest .setHandled (true );
125- return ;
126- } else if ((method .equals ("DELETE" ) && uri .equals ("/delete" )) ||
127- (method .equals ("GET" ) && uri .equals ("/get" )) ||
128- (method .equals ("PATCH" ) && uri .equals ("/patch" ))) {
129- Utils .copy (is , Utils .NULL_OUTPUT_STREAM );
130-
131- JSONObject response = new JSONObject ();
132- response .put ("args" , mapParametersToJSON (request ));
133- response .put ("headers" , mapHeadersToJSON (request ));
134- response .put ("origin" , request .getRemoteAddr ());
135- response .put ("url" , getFullURL (request ));
136-
137123 respondJSON (servletResponse , os , response );
138124 baseRequest .setHandled (true );
139125 return ;
@@ -361,7 +347,10 @@ baos, new Deflater(Deflater.DEFAULT_COMPRESSION,
361347
362348 baseRequest .setHandled (true );
363349 return ;
364- } else if ((method .equals ("POST" ) && uri .equals ("/post" )) ||
350+ } else if ((method .equals ("DELETE" ) && uri .equals ("/delete" )) ||
351+ (method .equals ("GET" ) && uri .equals ("/get" )) ||
352+ (method .equals ("PATCH" ) && uri .equals ("/patch" )) ||
353+ (method .equals ("POST" ) && uri .equals ("/post" )) ||
365354 (method .equals ("PUT" ) && uri .equals ("/put" ))) {
366355 JSONObject response = new JSONObject ();
367356
@@ -386,8 +375,14 @@ baos, new Deflater(Deflater.DEFAULT_COMPRESSION,
386375 } else {
387376 ByteArrayOutputStream baos = new ByteArrayOutputStream ();
388377 Utils .copy (is , baos );
389- response .put ("data" , new String (
390- baos .toByteArray (), StandardCharsets .UTF_8 ));
378+ String string = new String (
379+ baos .toByteArray (), StandardCharsets .UTF_8 );
380+ response .put ("data" , string );
381+ try {
382+ response .put ("json" , new JSONObject (string ));
383+ } catch (JSONException e ) {
384+ // client can provide non-JSON data
385+ }
391386 }
392387
393388 response .put ("args" , mapParametersToJSON (request ));
@@ -623,9 +618,11 @@ baos, new Deflater(Deflater.DEFAULT_COMPRESSION,
623618 servletResponse .setStatus (501 );
624619 baseRequest .setHandled (true );
625620 } catch (JSONException e ) {
621+ logger .trace ("JSONException" , e );
626622 servletResponse .setStatus (500 );
627623 baseRequest .setHandled (true );
628624 } catch (ServletException e ) {
625+ logger .trace ("ServletException" , e );
629626 servletResponse .setStatus (500 );
630627 baseRequest .setHandled (true );
631628 }
0 commit comments