Not all web servers return UTF-8 and will crash httpie when decoding the response

This commit is contained in:
Alen Mujezinovic 2012-02-28 14:01:01 +00:00
parent b567104267
commit 2f569b901d

View File

@ -163,13 +163,22 @@ def main():
# Display the 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 = (
u'HTTP/{version} {status} {reason}'.format(
version='.'.join(str(original.version)),
status=original.status, reason=original.reason,
),
str(original.msg).decode('utf-8'),
response.content.decode('utf-8') if response.content else u''
str(original.msg).decode(decode_from),
response.content.decode(decode_from) if response.content else u''
)
if args.prettify and sys.stdout.isatty():