Skip to content

Commit cce5ad4

Browse files
J0joel
andauthored
fix: handle json decode error when there's no json response (e.g. on 403) (#203)
Co-authored-by: joel <joel@joels-MacBook-Pro.local>
1 parent bcb0af7 commit cce5ad4

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

storage3/_async/file_api.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,17 @@ async def _request(
3939
files: Optional[Any] = None,
4040
**kwargs: Any,
4141
) -> Response:
42-
response = await self._client.request(
43-
method, url, headers=headers or {}, json=json, files=files, **kwargs
44-
)
4542
try:
43+
response = await self._client.request(
44+
method, url, headers=headers or {}, json=json, files=files, **kwargs
45+
)
4646
response.raise_for_status()
4747
except HTTPError:
48-
raise StorageException(
49-
{**response.json(), "statusCode": response.status_code}
50-
)
48+
try:
49+
resp = response.json()
50+
raise StorageException({**resp, "statusCode": response.status_code})
51+
except JSONDecodeError:
52+
raise StorageException({"statusCode": response.status_code})
5153

5254
return response
5355

storage3/_sync/file_api.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,17 @@ def _request(
3939
files: Optional[Any] = None,
4040
**kwargs: Any,
4141
) -> Response:
42-
response = self._client.request(
43-
method, url, headers=headers or {}, json=json, files=files, **kwargs
44-
)
4542
try:
43+
response = self._client.request(
44+
method, url, headers=headers or {}, json=json, files=files, **kwargs
45+
)
4646
response.raise_for_status()
4747
except HTTPError:
48-
raise StorageException(
49-
{**response.json(), "statusCode": response.status_code}
50-
)
48+
try:
49+
resp = response.json()
50+
raise StorageException({**resp, "statusCode": response.status_code})
51+
except JSONDecodeError:
52+
raise StorageException({"statusCode": response.status_code})
5153

5254
return response
5355

0 commit comments

Comments
 (0)