Commits

mickael9 committed 5e4bc5a

Improve debugging when invalid JSON is returned, and show status codes with -D

Comments (0)

Files changed (1)

     return _request(request)
 
 def _request(req):
-    try:
-        resp = urlopen(req).read()
-    except HTTPError as ex:
-        resp = ex.read()
-
-    result = json.loads(resp.decode('utf-8'))
-
     if DEBUG:
         print('--------------------------------------------------------------------------------')
         print("%s request to %s -->" % (req.get_method(), req.full_url))
         if req.data:
             print('data: ' + req.data.decode('utf-8'))
 
-        print('result:')
+    try:
+        resp = urlopen(req)
+        raw = resp.read()
+    except HTTPError as ex:
+        resp = ex
+        raw = ex.read()
+
+    raw = raw.decode('utf-8')
+
+    try:
+        result = json.loads(raw)
+    except:
+        print('Error: unable to decode JSON: %s' % raw)
+        raise
+
+    if DEBUG:
+        print('response (%d):' % resp.status)
 
         pprint.pprint(result)
         print()