mirror of
https://github.com/httpie/cli.git
synced 2024-11-24 08:22:22 +02:00
Not all web servers return UTF-8 and will crash httpie when decoding the response
This commit is contained in:
parent
b567104267
commit
2f569b901d
@ -163,13 +163,22 @@ def main():
|
|||||||
|
|
||||||
# Display the response.
|
# Display the response.
|
||||||
original = response.raw._original_response
|
original = response.raw._original_response
|
||||||
|
|
||||||
|
try:
|
||||||
|
decode_from = [
|
||||||
|
bit.split('=')[1] for bit in response.headers['content-type'].split(';')
|
||||||
|
if 'charset' in bit
|
||||||
|
][0]
|
||||||
|
except IndexError:
|
||||||
|
decode_from = 'utf-8'
|
||||||
|
|
||||||
status_line, headers, body = (
|
status_line, headers, body = (
|
||||||
u'HTTP/{version} {status} {reason}'.format(
|
u'HTTP/{version} {status} {reason}'.format(
|
||||||
version='.'.join(str(original.version)),
|
version='.'.join(str(original.version)),
|
||||||
status=original.status, reason=original.reason,
|
status=original.status, reason=original.reason,
|
||||||
),
|
),
|
||||||
str(original.msg).decode('utf-8'),
|
str(original.msg).decode(decode_from),
|
||||||
response.content.decode('utf-8') if response.content else u''
|
response.content.decode(decode_from) if response.content else u''
|
||||||
)
|
)
|
||||||
|
|
||||||
if args.prettify and sys.stdout.isatty():
|
if args.prettify and sys.stdout.isatty():
|
||||||
|
Loading…
Reference in New Issue
Block a user