1
0
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:
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. # 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():