diff --git a/httpbin/core.py b/httpbin/core.py index 04b42fa..d9a6c9a 100644 --- a/httpbin/core.py +++ b/httpbin/core.py @@ -85,7 +85,7 @@ def view_post(): """Returns POST Data.""" return jsonify(get_dict( - 'url', 'args', 'form', 'data', 'origin', 'headers', 'files')) + 'url', 'args', 'form', 'data', 'origin', 'headers', 'files', 'json')) @app.route('/put', methods=('PUT',)) @@ -93,7 +93,7 @@ def view_put(): """Returns PUT Data.""" return jsonify(get_dict( - 'url', 'args', 'form', 'data', 'origin', 'headers', 'files')) + 'url', 'args', 'form', 'data', 'origin', 'headers', 'files', 'json')) @app.route('/patch', methods=('PATCH',)) @@ -101,14 +101,14 @@ def view_patch(): """Returns PATCH Data.""" return jsonify(get_dict( - 'url', 'args', 'form', 'data', 'origin', 'headers', 'files')) + 'url', 'args', 'form', 'data', 'origin', 'headers', 'files', 'json')) @app.route('/delete', methods=('DELETE',)) def view_delete(): """Returns DETLETE Data.""" - return jsonify(get_dict('url', 'args', 'data', 'origin', 'headers')) + return jsonify(get_dict('url', 'args', 'data', 'origin', 'headers', 'json')) @app.route('/gzip') diff --git a/httpbin/helpers.py b/httpbin/helpers.py index 4ac23a8..fc899e7 100644 --- a/httpbin/helpers.py +++ b/httpbin/helpers.py @@ -75,7 +75,7 @@ def get_headers(hide_env=True): def get_dict(*keys, **extras): """Returns request dict of given keys.""" - _keys = ('url', 'args', 'form', 'data', 'origin', 'headers', 'files') + _keys = ('url', 'args', 'form', 'data', 'origin', 'headers', 'files', 'json') assert all(map(_keys.__contains__, keys)) @@ -94,6 +94,12 @@ def get_dict(*keys, **extras): nonflat_dict[k] = v[0] form = nonflat_dict + try: + json = json.loads(request.data) + except ValueError: + json = None + + d = dict( url=request.url, args=request.args,