исправлена обработка запросов с ошибкой не json формата

このコミットが含まれているのは:
Il'ya (Marshal) 2022-02-20 21:03:30 +01:00
コミット 46a6d33986
3個のファイルの変更16行の追加6行の削除

ファイルの表示

@ -1,3 +1,5 @@
# TODO (MarshalX) все исключения должны заканчиваться на Error
class YandexMusicError(Exception):
"""Базовый класс, представляющий исключения общего характера."""

ファイルの表示

@ -201,20 +201,24 @@ class Request:
if 200 <= resp.status_code <= 299:
return resp.content
parse = self._parse(resp.content)
message = parse.get_error() or 'Unknown HTTPError'
try:
parse = self._parse(resp.content)
message = parse.get_error()
except YandexMusicError:
message = 'Unknown HTTPError'
if resp.status_code in (401, 403):
raise Unauthorized(message)
elif resp.status_code == 400:
raise BadRequest(message)
elif resp.status_code in (404, 409, 413):
# TODO (MarshalX) было бы удобнее при 404 выбрасывать NotFoundError. Наследник NetworkError
raise NetworkError(message)
elif resp.status_code == 502:
raise NetworkError('Bad Gateway')
else:
raise NetworkError(f'{message} ({resp.status_code})')
raise NetworkError(f'{message} ({resp.status_code}): {resp.content}')
def get(self, url: str, params: dict = None, timeout: Union[int, float] = 5, *args, **kwargs) -> Union[dict, str]:
"""Отправка GET запроса.

ファイルの表示

@ -209,20 +209,24 @@ class Request:
if 200 <= resp.status <= 299:
return content
parse = self._parse(content)
message = parse.get_error() or 'Unknown HTTPError'
try:
parse = self._parse(content)
message = parse.get_error()
except YandexMusicError:
message = 'Unknown HTTPError'
if resp.status in (401, 403):
raise Unauthorized(message)
elif resp.status == 400:
raise BadRequest(message)
elif resp.status in (404, 409, 413):
# TODO (MarshalX) было бы удобнее при 404 выбрасывать NotFoundError. Наследник NetworkError
raise NetworkError(message)
elif resp.status == 502:
raise NetworkError('Bad Gateway')
else:
raise NetworkError(f'{message} ({resp.status})')
raise NetworkError(f'{message} ({resp.status}): {content}')
async def get(
self, url: str, params: dict = None, timeout: Union[int, float] = 5, *args, **kwargs