diff --git a/SoftLayer/transports.py b/SoftLayer/transports.py index 3aa896f11..74371a2ed 100644 --- a/SoftLayer/transports.py +++ b/SoftLayer/transports.py @@ -379,7 +379,12 @@ def __call__(self, request): request.url = resp.url resp.raise_for_status() - result = json.loads(resp.text) + + if resp.text != "": + result = json.loads(resp.text) + else: + raise exceptions.SoftLayerAPIError(resp.status_code, "Empty response.") + request.result = result if isinstance(result, list): @@ -388,9 +393,15 @@ def __call__(self, request): else: return result except requests.HTTPError as ex: - message = json.loads(ex.response.text)['error'] - request.url = ex.response.url - raise exceptions.SoftLayerAPIError(ex.response.status_code, message) + try: + message = json.loads(ex.response.text)['error'] + request.url = ex.response.url + except Exception: + if ex.response.text == "": + raise exceptions.SoftLayerAPIError(resp.status_code, "Empty response.") + else: + raise exceptions.SoftLayerAPIError(resp.status_code, ex.response.text) + raise exceptions.SoftLayerAPIError(ex.response.status_code, message) except requests.RequestException as ex: raise exceptions.TransportError(0, str(ex))