mirror of
https://github.com/httpie/cli.git
synced 2025-01-23 22:08:47 +01:00
Set JSON Content-Type only with data even with -j.
This commit is contained in:
parent
4e58a3849a
commit
44e409693b
@ -33,7 +33,7 @@ def get_response(args):
|
|||||||
|
|
||||||
auto_json = args.data and not args.form
|
auto_json = args.data and not args.form
|
||||||
if args.json or auto_json:
|
if args.json or auto_json:
|
||||||
if 'Content-Type' not in args.headers:
|
if 'Content-Type' not in args.headers and args.data:
|
||||||
args.headers['Content-Type'] = JSON
|
args.headers['Content-Type'] = JSON
|
||||||
|
|
||||||
if 'Accept' not in args.headers:
|
if 'Accept' not in args.headers:
|
||||||
|
@ -32,6 +32,8 @@ class Environment(object):
|
|||||||
colors = 256 if '256color' in os.environ.get('TERM', '') else 88
|
colors = 256 if '256color' in os.environ.get('TERM', '') else 88
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
|
assert all(hasattr(type(self), attr)
|
||||||
|
for attr in kwargs.keys())
|
||||||
self.__dict__.update(**kwargs)
|
self.__dict__.update(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
@ -74,7 +76,7 @@ class HTTPMessage(object):
|
|||||||
|
|
||||||
|
|
||||||
class HTTPResponse(HTTPMessage):
|
class HTTPResponse(HTTPMessage):
|
||||||
"""A `requests.models.Response` wrapper."""
|
"""A :class:`requests.models.Response` wrapper."""
|
||||||
|
|
||||||
def iter_body(self, chunk_size=1):
|
def iter_body(self, chunk_size=1):
|
||||||
return self._orig.iter_content(chunk_size=chunk_size)
|
return self._orig.iter_content(chunk_size=chunk_size)
|
||||||
@ -106,7 +108,7 @@ class HTTPResponse(HTTPMessage):
|
|||||||
|
|
||||||
|
|
||||||
class HTTPRequest(HTTPMessage):
|
class HTTPRequest(HTTPMessage):
|
||||||
"""A `requests.models.Request` wrapper."""
|
"""A :class:`requests.models.Request` wrapper."""
|
||||||
|
|
||||||
def iter_body(self, chunk_size):
|
def iter_body(self, chunk_size):
|
||||||
yield self.body
|
yield self.body
|
||||||
|
@ -102,8 +102,9 @@ def output_stream(args, env, request, response):
|
|||||||
|
|
||||||
|
|
||||||
def make_stream(env, args):
|
def make_stream(env, args):
|
||||||
"""Pick the right stream type for based on `env` and `args`.
|
"""Pick the right stream type based on `env` and `args`.
|
||||||
and wrap it with a partial with the type-specific args.
|
Wrap it in a partial with the type-specific args so that
|
||||||
|
we don't need to think what stream we are dealing with.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if not env.stdout_isatty and not args.prettify:
|
if not env.stdout_isatty and not args.prettify:
|
||||||
|
@ -386,15 +386,15 @@ class AutoContentTypeAndAcceptHeadersTest(BaseTestCase):
|
|||||||
self.assertIn('"Accept": "application/json"', r)
|
self.assertIn('"Accept": "application/json"', r)
|
||||||
self.assertIn('"Content-Type": "application/json; charset=utf-8', r)
|
self.assertIn('"Content-Type": "application/json; charset=utf-8', r)
|
||||||
|
|
||||||
def test_POST_explicit_JSON_auto_JSON_headers(self):
|
def test_POST_explicit_JSON_auto_JSON_accept(self):
|
||||||
r = http(
|
r = http(
|
||||||
'--json',
|
'--json',
|
||||||
'POST',
|
'POST',
|
||||||
httpbin('/post')
|
httpbin('/post')
|
||||||
)
|
)
|
||||||
self.assertIn(OK, r)
|
self.assertIn(OK, r)
|
||||||
self.assertIn('"Accept": "application/json"', r)
|
self.assertEqual(r.json['headers']['Accept'], 'application/json')
|
||||||
self.assertIn('"Content-Type": "application/json; charset=utf-8', r)
|
self.assertNotIn('Content-Type', r.json['headers'])
|
||||||
|
|
||||||
def test_GET_explicit_JSON_explicit_headers(self):
|
def test_GET_explicit_JSON_explicit_headers(self):
|
||||||
r = http(
|
r = http(
|
||||||
|
Loading…
Reference in New Issue
Block a user