Only decode if needed
diff --git a/googleapiclient/discovery.py b/googleapiclient/discovery.py
index 4e5787f..441dbf0 100644
--- a/googleapiclient/discovery.py
+++ b/googleapiclient/discovery.py
@@ -202,6 +202,11 @@
raise HttpError(resp, content, uri=requested_url)
try:
+ content = content.decode('utf-8')
+ except AttributeError:
+ pass
+
+ try:
service = json.loads(content)
except ValueError as e:
logger.error('Failed to parse as JSON: ' + content)
diff --git a/googleapiclient/model.py b/googleapiclient/model.py
index c598154..e8afb63 100644
--- a/googleapiclient/model.py
+++ b/googleapiclient/model.py
@@ -258,7 +258,10 @@
return json.dumps(body_value)
def deserialize(self, content):
- content = content.decode('utf-8')
+ try:
+ content = content.decode('utf-8')
+ except AttributeError:
+ pass
body = json.loads(content)
if self._data_wrapper and isinstance(body, dict) and 'data' in body:
body = body['data']