nextcloud-android/third_party/transifex-client/txclib/http_utils.py
2012-07-21 22:10:36 +02:00

46 lines
1,006 B
Python

# -*- coding: utf-8 -*-
"""
HTTP-related utility functions.
"""
from __future__ import with_statement
import gzip
try:
import cStringIO as StringIO
except ImportError:
import StringIO
def _gzip_decode(gzip_data):
"""
Unzip gzipped data and return them.
:param gzip_data: Gzipped data.
:returns: The actual data.
"""
try:
gzip_data = StringIO.StringIO(gzip_data)
gzip_file = gzip.GzipFile(fileobj=gzip_data)
data = gzip_file.read()
return data
finally:
gzip_data.close()
def http_response(response):
"""
Return the response of a HTTP request.
If the response has been gzipped, gunzip it first.
:param response: The raw response of a HTTP request.
:returns: A response suitable to be used by clients.
"""
metadata = response.info()
data = response.read()
response.close()
if metadata.get('content-encoding') == 'gzip':
return _gzip_decode(data)
else:
return data