From dd100c2cc4272f7584dd5e3b0d9e154eb51ec4cf Mon Sep 17 00:00:00 2001 From: Jakub Roztocil Date: Sat, 1 Dec 2012 15:55:58 +0100 Subject: [PATCH] Fixed -j & -v & redirected stdout. Closes #109. --- httpie/client.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/httpie/client.py b/httpie/client.py index 6bb88685..eca1027e 100644 --- a/httpie/client.py +++ b/httpie/client.py @@ -25,9 +25,9 @@ def get_response(args, config_dir): '\n>>> requests.request(%s)\n\n' % pformat(requests_kwargs)) if not args.session and not args.session_read_only: - return requests.request(**requests_kwargs) + response = requests.request(**requests_kwargs) else: - return sessions.get_response( + response = sessions.get_response( config_dir=config_dir, name=args.session or args.session_read_only, request_kwargs=requests_kwargs, @@ -35,6 +35,9 @@ def get_response(args, config_dir): ) + return response + + def get_requests_kwargs(args): """Translate our `args` into `requests.request` keyword arguments.""" @@ -48,9 +51,12 @@ def get_requests_kwargs(args): base_headers['Content-Type'] = JSON if isinstance(args.data, dict): - # If not empty, serialize the data `dict` parsed from arguments. - # Otherwise set it to `None` avoid sending "{}". - args.data = json.dumps(args.data) if args.data else None + if args.data: + args.data = json.dumps(args.data) + else: + # We need to set data to an empty string to prevent requests + # from assigning an empty list to `response.request.data`. + args.data = '' elif args.form and not args.files: # If sending files, `requests` will set